Mysql触发器实现同一个主机两个数据库相同表结构数据同步

一、Mysql触发器创建1、Mysql触发器语法CREATE [DEFINER = { 'user' | CURRENT_USER }] TRIGGER trigger_nametrigger_time trigger_eventON table_nameFOR EACH ROW[trigger_order]trigger_body2、MySQL创建语法中的关键词解释字段含义可能的值DEFINER=可选参数,指定创建者,默认为当前登录用户(CURRENT_USE
摘要由CSDN通过智能技术生成

一、Mysql触发器创建

1、Mysql触发器语法

CREATE [DEFINER = {
    'user' | CURRENT_USER }] 
TRIGGER trigger_name
trigger_time trigger_event
ON table_name
FOR EACH ROW
[trigger_order]
trigger_body

2、MySQL创建语法中的关键词解释

字段 含义 可能的值
DEFINER= 可选参数,指定创建者,默认为当前登录用户(CURRENT_USER); 该触发器将以此参数指定的用户执行,所以需要考虑权限问题; DEFINER=‘root@%’ DEFINER=CURRENT_USER
trigger_name 触发器名称,最好由表名+触发事件关键词+触发时间关键词组成;
trigger_time 触发时间,在某个事件之前还是之后; BEFORE、AFTER
trigger_event 触发事件,如插入时触发、删除时触发; INSERT:插入操作触发器,INSERT、LOAD DATA、REPLACE时触发;UPDATE:更新操作触发器,UPDATE操作时触发; DELETE:删除操作触发器,DELETE、REPLACE操作时触发; INSERT、UPDATE、DELETE
table_name 触发操作时间的表名;
trigger_order 可选参数,如果定义了多个具有相同触发事件和触法时间的触发器时( 如:BEFORE UPDATE),默认触发顺序与触发器的创建顺序一致,可以 使用此参数来改变它们触发顺序。mysql 5.7.2起开始支持此参数 FOLLOWS:当前创建触发器在现有触发器之后激活; PRECEDES:当前创建触发器在现有触发器之前激活; FOLLOWS、PRECEDES
trigger_body 触发执行的SQL语句内容,一般以begin开头,end结尾 begin … end

3、MySQL分隔符(DELIMITER)

MySQL默认使用“;”作为分隔符,SQL语句遇到“;”就会提交。而我们的触发器中可能会有多个“;”符,为了防止触发器创建语句过早的提交,我们需要临时修改MySQL分隔符,创建完后,再将分隔符改回来。使用DELIMITER可以修改分隔符

DELIMITER $
... 	-- 触发器创建语句;
$   	-- 提交创建语句;
DELIMITER ;

3、同步插入 测试案例

创建测试表和触发器

-
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值