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$

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章