首页 - 数据 - mysql触发器当前表名

mysql触发器当前表名

2023-10-04 10:46

MySQL触发器是一个数据库对象,当对特定表执行操作时自动激活。当表的任何事件(如INSERT、UPDATE、DELETE)发生时,MySQL会自动执行预定义的代码块。执行代码块时,触发器可以使用特殊变量,例如 current_table 和 current_database。

其中current_table指的是当前激活触发器的表名。通常,您在触发器中引用此变量来处理事件。

分隔符$$
创建触发器 my_trigger
在 my_table 上插入之后
对于每一行
开始
DECLARE table_name VARCHAR(255) DEFAULT current_table();
-- 你的代码逻辑
结束$$
DELIMITER ;

在上面的例子中,我们创建了一个名为my_trigger的触发器,每次在my_table表中执行插入操作时都会自动激活该触发器。在触发器块中,我们使用DECLARE声明一个名为table_name的变量,并将其赋给current_table()函数的返回值,这样我们就可以在代码块中使用该变量来引用当前表名。

需要注意的是,current_table()函数只能在触发器中使用,并且必须在BEGIN和END语句块中使用。如果在其他地方使用会引发错误。

总之,MySQL触发器是一个强大的数据库工具,可以自动化数据库中的操作。使用current_table()函数可以方便的引用当前表名,让您更好的操作数据库。