📅  最后修改于: 2023-12-03 14:44:32.144000             🧑  作者: Mango
MySQL是一个流行的关系型数据库管理系统,它支持触发器,这是一种在特定的数据库操作发生时自动执行的程序。触发器可以用来验证数据、生成计算字段、记录历史数据等等。
触发器是MySQL中的一种特殊的存储过程,它不需要显式调用即可在特定情况下自动运行。触发器可以在以下事件发生时被激活:
触发器的代码是在MySQL服务器上运行的,因此它可以进行复杂的计算和逻辑判断,并且可以访问表上的数据。
在MySQL中创建触发器需要遵循一定的语法规则。以下是一个简单的示例:
CREATE TRIGGER `trigger_name` AFTER INSERT ON `table_name`
FOR EACH ROW BEGIN
-- trigger body
END;
触发器名称(trigger_name
)必须在数据库中是唯一的。触发器的其他属性包括:
AFTER INSERT
、AFTER UPDATE
或AFTER DELETE
)FOR EACH ROW
或FOR EACH STATEMENT
)WHEN
语句)触发器主体(trigger body
)是实际的代码,可以包含多条SQL语句。在触发器主体中可以使用OLD
和NEW
引用旧数据和新数据,例如:
CREATE TRIGGER `update_salary` AFTER UPDATE ON `employee_table`
FOR EACH ROW BEGIN
IF NEW.salary != OLD.salary THEN
INSERT INTO `salary_history` (employee_id, old_salary, new_salary)
VALUES(OLD.id, OLD.salary, NEW.salary);
END IF;
END;
在MySQL中,可以使用DROP TRIGGER
语句来删除一个触发器:
DROP TRIGGER `trigger_name`;
可以使用SHOW TRIGGERS
语句来列出数据库中的所有触发器:
SHOW TRIGGERS;
对于每个触发器,这个命令列出其名称、事件、表名和创建时间等信息。
触发器是MySQL中非常有用的功能,它可以让程序员轻松地验证数据、实现计算字段、记录历史数据等等。它需要遵循一定的语法规则来创建,并且可以使用DROP TRIGGER
和SHOW TRIGGERS
等命令来管理。