怎样做网站的快捷方式,wordpress中设置ajax分页,区块链外包开发,wordpress如何缩短连接触发器
触发器是与表有关的数据库对象#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)#xff0c;触 发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 。
使用别名OLD和NEW来引用…触发器
触发器是与表有关的数据库对象指在insert/update/delete之前(BEFORE)或之后(AFTER)触 发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 。
使用别名OLD和NEW来引用触发器中发生变化的记录内容这与其他的数据库是相似的。现在触发器还 只支持行级触发不支持语句级触发。
触发器类型NEW和OLDINSERT型触发器NEW表示将要或者已经新增的数据UPDATE型触发器OLD表示修改之前的数据NEW表示将要或已经修改后的数据DELETE型触发器OLD表示将要或者已经删除的数据
语法
创建
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON tbl_name FOR EACH ROW -- 行级触发器
BEGIN
trigger_stmt ;
END;查看
SHOW TRIGGERS ;删除
DROP TRIGGER [schema_name.]trigger_name ;
-- 如果没有指定 schema_name默认为当前数据库 。 案例
创建表tb_user,将变更日志插入到日志表user_logs中包含增加修改删除
create table user_logs(id int(11) not null auto_increment,operation varchar(20) not null comment 操作类型, insert/update/delete,operate_time datetime not null comment 操作时间,operate_id int(11) not null comment 操作的ID,operate_params varchar(500) comment 操作参数,primary key(id)
)engineinnodb default charsetutf8; 插入数据触发器
-- 插入数据触发器
create trigger tb_user_insert_triggerafter insert on tb_user for each rowbegininsert into user_logs(id, operation, operate_time, operate_id, operate_params) values (null,insert,now(),new.id,concat(插入的数据内容为id,new.id,,name,new.name,,phone,NEW.phone,,email,NEW.email,,profession,NEW.profession));end;-- 查看触发器
show triggers ;-- 删除触发器
drop trigger tb_user_insert_trigger;-- 插入数据到tb_user
insert into tb_user(id, name, phone, email, profession, age, gender, status,
createtime) VALUES (26,三皇子,18809091212,erhuangzi163.com,软件工
程,23,1,1,now()); 修改数据触发器
-- 修改数据触发器
create trigger tb_user_update_triggerafter update on tb_user for each rowbegininsert into user_logs(id, operation, operate_time, operate_id, operate_params) values(null,update,now(),new.id,concat(更新之前的的数据内容为id,OLD.id,,name,OLD.name,,phone,OLD.phone,,email,OLD.email,,profession,OLD.profession,更新之后的的数据内容为id,new.id,,name,new.name,,phone,NEW.phone,,email,NEW.email,,profession,NEW.profession));end;-- 查看触发器
show triggers ;-- 更新数据
update tb_user set profession 会计 where id 17; 删除数据触发器
-- 删除数据触发器
create trigger tb_user_delete_triggerafter delete on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)
VALUES(null, delete, now(), old.id,concat(删除之前的数据: id,old.id,,name,old.name, , phone,old.phone, , email, old.email, , profession, old.profession));
end;-- 查看
show triggers ;-- 删除数据
delete from tb_user where id 26;