外观
创建触发器
创建只有一条语句的触发器
创建只有一条语句的触发器的语句如下。
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句其中,BEFORE表示在触发器时间之前执行触发语句,AFTER表示在触发时间之后执行触发语句;触发事件表示数据库操作触发事件,包括INSERT、UPDATE和DELETE语句;表名表示指定事件触发操作表的名称;FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器;执行语句代表触发器被触发后执行的语句。
如创建一条以插入命令INSERT语句触发的触发器auto_save_time,在这之前先创建一个time_log表格。创建触发器的语法如下。
create trigger auto_save_time before insert on employees for each row insert into time_log (savetime) values (now());
可见触发器auto_save_time创建成功。该触发器表示在employees表中执行insert语句后自动在auto_time表中保存插入时间。现在我们插入一个信息。


可见,插入数据后显示了保存时间为23:27:12。
创建具有多条语句的触发器
创建具有多条语句的触发器语法如下。
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW
BEGIN 执行语句列表 END我们创建另一个自动保存时间的触发器auto_save_time2,在执行INSERT语句后向time_log表中插入数据并显示,并在time_log2表中存放此操作的具体操作(先创建此数据表)(先删除前面创建的触发器,否则会创建两条记录。删除触发器的语法在后面讲)。创建此触发器的语法如下。
delimiter //
create trigger auto_save_time2 before insert on employees for each row
begin
insert into time_log (savetime) values (now());
insert into time_log2 (savetime,act) values (now(),'delete');
end //这里不放出结果了。