首页 > 代码库 > mysql学习之触发器
mysql学习之触发器
在借阅表和读者表当中存在着这样的关系,如果在借阅表当中添加一条数据,读者表当中对应的累计借书字段就自增1,如果在借阅表当中删除一条数据,读者表当中对应的累计借书字段就自减1,实现本功能的方法如下。
1、创建读者表
1 CREATE TABLE `t_borrowbook` ( 2 `borrowBookId` int(11) NOT NULL AUTO_INCREMENT, 3 `bookId` int(11) DEFAULT NULL, 4 `id` int(11) DEFAULT NULL, 5 `audienceId` int(11) DEFAULT NULL, 6 `startTime` datetime DEFAULT NULL, 7 `endTime` datetime DEFAULT NULL, 8 `borrowBookDesc` text, 9 PRIMARY KEY (`borrowBookId`) 10 )
2、创建借阅表
1 CREATE TABLE `t_audience` ( 2 `audienceId` int(10) NOT NULL AUTO_INCREMENT, 3 `audienceName` varchar(20) NOT NULL, 4 `audienceTypeId` int(10) NOT NULL, 5 `audienceNumber` varchar(18) NOT NULL, 6 `sex` varchar(20) DEFAULT NULL, 7 `cellphone` varchar(11) DEFAULT NULL, 8 `borrowBookNum` int(10) DEFAULT NULL, 9 `audienceDesc` text, 10 PRIMARY KEY (`audienceId`) 11 )
3、创建插入自增触发器
1 DELIMITER $$ 2 3 CREATE 4 /*[DEFINER = { user | CURRENT_USER }]*/ 5 TRIGGER `db_book`.`Tr_borrowbook_Insert` AFTER INSERT 6 ON `db_book`.`t_borrowbook` 7 FOR EACH ROW BEGIN 8 UPDATE t_audience SET borrowBookNum = borrowBookNum+1 WHERE audienceId=new.audienceId; 9 END$$ 10 11 DELIMITER ;
4、创建删除自减触发器
1 DELIMITER $$ 2 3 CREATE 4 /*[DEFINER = { user | CURRENT_USER }]*/ 5 TRIGGER `db_book`.`Tr_borrowbook_Delete` AFTER DELETE 6 ON `db_book`.`t_borrowbook` 7 FOR EACH ROW BEGIN 8 UPDATE t_audience SET borrowBookNum = borrowBookNum-1 WHERE audienceId=old.audienceId; 9 END$$ 10 11 DELIMITER ;
每天进步一点点,一切都是最好的安排。
mysql学习之触发器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。