在这里建了两个表:其中这两个表的结构不一样,这里给表admin建立触发器
在对表admin操作的同时,触发数据库的触发器,同时操作表users。
1.创建表:
create table admin(id int,name char(30),age int(3),email char(100));
create table users(id int,name char(30),age int(3));
2.创建触发器:
2.1.插入时触发
注:在命令提示符下输入delimiter // 这样是用//替换结束符';',这样可避免点击换行键时执行程序。
delimiter //
drop trigger my_insert;
create trigger my_insert after insert on admin for each row
begin
insert into users(id,name,age) values(new.id,'new.name',new.age);
end//
delimiter; 注:将结束符改回原来的';'
2.2.更新时触发
delimiter //
drop trigger my_update;
create trigger my_update after update on admin for each row
begin
update users set name=new.name,age=new.age where id=old.id;
end//
delimiter;
2.3.删除时触发
delimiter //
drop trigger my_delete;
create trigger my_delete after delete on admin for each row
begin
delete from users where id=old.id;
end//
delimiter;
说明:delimiter //
在命令提示符下操作,默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。
因为mysql一遇到分号,它就要自动执行。
即,在语句RETURN '';时,mysql解释器就要执行了。
这种情况下,就需要事先把delimiter换成其它符号,如//或$$。