mysql触发器实践
2015-09-25 11:31
330 查看
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:
1.监视地点(table)
2.监视事件(insert/update/delete)
3.触发时间(after/before)
4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before insert/update/delete on 表名
for each row #这句话在mysql是固定的
begin
sql语句;
end;
举例说明:
创建两个表
创建两个触发器:
(1)在t_a插入数据后,往t_b同步数据
(1)在t_a删除数据后,删除t_b的对应数据
insert into t_a(name) value(‘liuyanliang’);
SELECT * from t_a
SELECT * from t_b
//发现t_a和t_b插入了一条相同的数据
DELETE FROM t_a where id = 1;
SELECT * from t_a
SELECT * from t_b
//发现t_a和t_b的数据都删除了
触发器创建语法四要素:
1.监视地点(table)
2.监视事件(insert/update/delete)
3.触发时间(after/before)
4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before insert/update/delete on 表名
for each row #这句话在mysql是固定的
begin
sql语句;
end;
举例说明:
创建两个表
[code]DROP TABLE IF EXISTS `t_a`; CREATE TABLE `t_a` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; DROP TABLE IF EXISTS `t_b`; CREATE TABLE `t_b` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
创建两个触发器:
(1)在t_a插入数据后,往t_b同步数据
[code]DROP TRIGGER IF EXISTS t_afterinsert_on_ta; CREATE TRIGGER t_afterinsert_on_ta AFTER INSERT ON t_a FOR EACH ROW BEGIN INSERT INTO t_b (name) VALUES (new.name); END;
(1)在t_a删除数据后,删除t_b的对应数据
[code]DROP TRIGGER IF EXISTS t_afterdelete_on_ta; CREATE TRIGGER t_afterdelete_on_ta AFTER DELETE ON t_a FOR EACH ROW BEGIN delete from t_b where id = old.id; END;
insert into t_a(name) value(‘liuyanliang’);
SELECT * from t_a
SELECT * from t_b
//发现t_a和t_b插入了一条相同的数据
DELETE FROM t_a where id = 1;
SELECT * from t_a
SELECT * from t_b
//发现t_a和t_b的数据都删除了
相关文章推荐
- RMySQL
- MySQL去除列行首空格的方法
- mysql 常用配置
- wamp修改mysql密码
- mysql行列转换示例
- MySQLdb安装
- MySQL的btree索引和hash索引的区别
- mysqldump之不老将
- MySQL Count()函数
- 同机安装多个MySQL版本-MySQL 5.7源码安装流程详解
- C#连接MySql
- MySQL AVG()函数
- mysql优化建议
- Code First for MySql命令操作
- mysql的group by应用
- MySql 安装
- 【手把手教】主从MySql配置
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- lnmp下如何关闭Mysql日志保护磁盘空间
- mysql执行sql语句优化分析命令explain命令小记