MySql 触发器简单实例

本文介绍如何通过SQL语句创建两个表(C1和C2)并实现一个触发器机制,使得C1表的插入和更新操作能够自动同步到C2表中。

一段时间不写又忘了

/*取消外键约束*/
SET FOREIGN_KEY_CHECKS=0;

/*创建C1表 主键ID 字段name*/
DROP TABLE IF EXISTS `c1`;
CREATE TABLE `c1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(120) CHARACTER SET utf8mb4 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1;

/*C2与C1结构相同 去掉了ID自增*/
DROP TABLE IF EXISTS `c2`;
CREATE TABLE `c2` (
  `id` int(11) NOT NULL,
  `name` varchar(120) CHARACTER SET utf8mb4 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1;





/*给C1创建一个触发器 名称叫c1-insert*//*触发条件是 AFTER INSERT*/
DROP TRIGGER IF EXISTS `c1-insert`;
DELIMITER ;;
CREATE TRIGGER `c1-insert` AFTER INSERT ON `c1` FOR EACH ROW BEGIN 
/*插入后的ID*/
SET @id = NEW.id; 
/*插入后的name*/
SET @name = NEW.name ;
INSERT INTO `c2` (`id`, `name`) VALUES (@id,@name); /*插入到C2表*/
END
;;


/*给C1创建一个触发器 名称叫c1-update*//*触发条件是 AFTER UPDATE*/
DELIMITER ;
DROP TRIGGER IF EXISTS `c1-update`;
DELIMITER ;;
CREATE TRIGGER `c1-update` AFTER UPDATE ON `c1` FOR EACH ROW BEGIN.
/*修改前的ID*/
SET @id = OLD.id; 
/*修改后的name*/
SET @name = NEW.name;
UPDATE `c2` SET `name`=@name WHERE id = @id; /*更新到C2表*/
END
;;

 

转载于:https://www.cnblogs.com/toumingbai/p/4758207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值