2016-02-25 71 views
0

如何在不知道表名的情況下引用觸發器代碼中觸發的表?我的意思是,我需要獲取該代碼並將其粘貼到20個觸發器中,每個觸發器用於不同的表格。 : -/如何在觸發器代碼中使用表名作爲變量? MySQL/MariaDB

CREATE TRIGGER register_eventLog_for_table_xyz 
AFTER UPDATE ON xyz 
FOR EACH ROW BEGIN 
    CALL reg_event(@this_tableName, dataChanged); 
END 
+0

我不知道任何內部的函數將返回正在運行的存儲過程的名稱或觸發器所附表的名稱。您需要將表名硬編碼到參數中。 – Shadow

+0

也許我在做夢,但我記得在互聯網上的某處看到它,但我不記得該網站是什麼。 – PSyLoCKe

+0

你的應用程序可以使用SET語句來初始化一個mysql用戶變量來存儲表名,並且你的觸發器可以使用相同的變量來設置表名。我真的不會想到其他任何東西。 – Shadow

回答

0

建立一個腳本來看看information_schema.TABLES找到表的列表,併爲每個表TRIGGER。它也會爲表名創建字符串。

相關問題