MySql触发器简单说明

-- --------------------------------------------------------
-- ######触发器##
-- ---------------------------------------------------------
/*
	CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt
	trigger_name:触发器的名称
	tirgger_time:触发时机,为BEFORE或者AFTER
	trigger_event:触发事件,为INSERT、DELETE或者UPDATE
	tb_name:表示建立触发器的表明,就是在哪张表上建立触发器
	trigger_stmt:触发器的程序体,可以是一条SQL语句或者是用BEGIN和END包含的多条语句
MySQL创建以下六种触发器:
	BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE
	AFTER INSERT,AFTER DELETE,AFTER UPDATE
NEW 代表触发器外执行对应操作,新插入代码中的数据! 常用于 insert into 插入新数据,new 获取要插入的内容 
       OLD 代表触发器外执行对应操作,对应的原代码中要变更或是要删除的数据! 常用于删和改 (drop和update)
*/
/*
现在有两个表【用户表】和【日志表】,当一个用户被创建的时候,就需要在日志表中插入创建的log日志,
如果在不使用触发器的情况下,你需要编写程序语言逻辑才能实现,
但是如果你定义了一个触发器,触发器的作用就是当你在用户表中插入一条数据的之后帮你在日志表中插入一条日志信息。
当然触发器并不是只能进行插入操作,还能执行修改,删除。
*/
-- 创建测试数据表
CREATE TABLE `cf_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `strname` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  `addtime` varchar(255) DEFAULT '2000-1-1 00:00:00',
  PRIMARY KEY (`id`),
  KEY `strname` (`strname`(250)) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1;


CREATE TABLE `cf_logs` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `strlog` varchar(255) DEFAULT NULL COMMENT '日志说明',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日志表';
-- 创建触发器,插入数据前写日志
CREATE TRIGGER user_log AFTER INSERT ON cf_users FOR EACH ROW
BEGIN
	DECLARE s1 VARCHAR(225) CHARACTER SET utf8;
	DECLARE s2 VARCHAR(225) CHARACTER SET utf8;
	SET s2= "插入数据前触发写日志";
	SET s1= CONCAT(NEW.strname,S2); #函数CONCAT可以将字符串连接
	INSERT INTO cf_logs(strlog) VALUES(s1);
END
-- 查看触发器
SHOW TRIGGERS;
-- 插入数据
INSERT INTO cf_users(strname,addtime) VALUES('周伯通',NOW());
-- 查看结果
SELECT * FROM cf_logs;
SELECT * FROM cf_users;
-- 删除触发器
DROP TRIGGER user_log;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值