MySql触发器,可用于小型项目日志记录、数据同步

触发器支持跨库触发!!!!!!!!!!!

创建表一,原始表省级

CREATE TABLE `hat_province` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `provinceID` varchar(6) DEFAULT NULL COMMENT '省级code',
  `province` varchar(40) DEFAULT NULL COMMENT '省级名称',
  `area` varchar(20) DEFAULT NULL COMMENT '所属区域名称',
  `group_id` int(6) DEFAULT NULL COMMENT '所属区域编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8 COMMENT='省级表';


创建表二,同步表

DROP TABLE IF EXISTS `t_link_hat_province`;
CREATE TABLE `t_link_hat_province` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `provinceID` varchar(6) DEFAULT NULL COMMENT '省级code',
  `province` varchar(40) DEFAULT NULL COMMENT '省级名称',
  `area` varchar(20) DEFAULT NULL COMMENT '所属区域名称',
  `group_id` int(6) DEFAULT NULL COMMENT '所属区域编号',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8 COMMENT='地址省';

创建insert 同步触发器

-- 触发器存在则删除
DROP TRIGGER
IF EXISTS insert_t_link_hat_province ; 

-- 创建添加同步
CREATE TRIGGER insert_t_link_hat_province AFTER INSERT ON hat_province FOR EACH ROW
BEGIN

IF NOT EXISTS (
	SELECT
		*
	FROM
		t_link_hat_province
	WHERE
		id = NEW.id
) THEN
	INSERT INTO t_link_hat_province (
		`id`,
		`provinceID`,
		`province`,
		`area`,
		`group_id`
	)
VALUES
	(
		NEW.id,
		NEW.provinceID,
		NEW.province,
		NEW.area,
		NEW.group_id
	) ;
END
IF;  END$

创建update 触发器


DROP TRIGGER
IF EXISTS update_t_link_hat_province ; 

CREATE TRIGGER update_t_link_hat_province AFTER UPDATE ON hat_province FOR EACH ROW
BEGIN
	UPDATE t_link_hat_province
		SET `provinceID` = NEW.provinceID,
		 `province` = NEW.province,
		 `area` = NEW.area,
		 `group_id` = NEW.group_id
		WHERE
	id = NEW.id ; END$

创建delete 触发器

DROP TRIGGER
IF EXISTS del_t_link_hat_province ; 
CREATE TRIGGER del_t_link_hat_province AFTER DELETE ON hat_province FOR EACH ROW
BEGIN
	DELETE
FROM
	t_link_hat_province
WHERE
	id = OLD.id ;
END$

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值