🔖 触发器示例

pull/1/head
Zhang Peng 2018-05-02 17:11:56 +08:00
parent 7e17afdcd3
commit d851466e86
1 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,58 @@
/**
* Mysql TRIGGER使
* @author Zhang Peng
* @date 2018/5/2
*/
#############################################################
# 运行本例的预置操作
#############################################################
-- 新建数据表 user
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Id',
`username` varchar(64) NOT NULL DEFAULT 'default' COMMENT '用户名',
`password` varchar(64) NOT NULL DEFAULT 'default' COMMENT '密码',
`email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱',
PRIMARY KEY (`id`)
) COMMENT='用户表';
-- 新建数据表 user_history
DROP TABLE IF EXISTS `user_history`;
CREATE TABLE `user_history` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户ID',
`operate_type` VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '操作类型',
`operate_time` VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '操作时间',
PRIMARY KEY (`id`)
) COMMENT='用户记录表';
#############################################################
# 创建触发器
#############################################################
-- 删除触发器
DROP TRIGGER IF EXISTS `trigger_insert_user`;
-- 创建触发器
DELIMITER $
CREATE TRIGGER `trigger_insert_user`
AFTER INSERT ON `user`
FOR EACH ROW
BEGIN
INSERT INTO `user_history`(user_id, operate_type, operate_time)
VALUES (NEW.id, 'add a user', now());
END $
DELIMITER ;
-- 查看触发器
SHOW TRIGGERS;
#############################################################
# 测试
#############################################################
INSERT INTO `user`(username, password, email)
VALUES ('admin', 'admin', 'xxxx@163.com');
SELECT * FROM user_history;