sql,CREATE TRIGGER trigger_name,trigger_time trigger_event ON table_name FOR EACH ROW trigger_body;,
`,,
trigger_name是触发器名称,
trigger_time是触发时机(BEFORE或AFTER),
trigger_event是触发事件(INSERT、UPDATE或DELETE),
table_name是触发器所在表名,
trigger_body`是触发器执行的SQL语句。MySQL触发器是一种存储在数据库中的程序,它会在特定的事件(如插入、更新或删除数据)发生时自动执行,触发器可以用于实现数据的完整性约束、审计和业务逻辑等。
创建触发器
1、使用CREATE TRIGGER
语句创建触发器:
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_body;
参数说明:
trigger_name
:触发器名称,自定义。
trigger_time
:触发时机,可选值有BEFORE
(在触发事件发生之前执行)和AFTER
(在触发事件发生之后执行)。
trigger_event
:触发事件,可选值有INSERT
(插入数据)、UPDATE
(更新数据)和DELETE
(删除数据)。
table_name
:触发器所在的表名。
trigger_body
:触发器要执行的操作,可以是SQL语句、PL/SQL语句等。
2、示例:创建一个在向students
表插入数据之前检查学号是否重复的触发器。
DELIMITER // CREATE TRIGGER check_student_id_before_insert BEFORE INSERT ON students FOR EACH ROW BEGIN DECLARE duplicate_count INT; SELECT COUNT(*) INTO duplicate_count FROM students WHERE student_id = NEW.student_id; IF duplicate_count > 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '学号重复'; END IF; END; // DELIMITER ;
查看触发器
使用SHOW TRIGGERS
语句查看当前数据库中的所有触发器:
SHOW TRIGGERS;
修改触发器
使用ALTER TRIGGER
语句修改触发器:
ALTER TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_body;
删除触发器
使用DROP TRIGGER
语句删除触发器:
DROP TRIGGER trigger_name;
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/640294.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复