MySQL 触发器
Mysql  /  houtizong 发布于 2年前   124
DELIMITER $$ -- 结束符改为$$ CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name[FOR EACH ROW]BEGIN commands;END$$DELIMITER ; -- 结束符改回;
CREATE TABLE ACCOUNT (USERNAME VARCHAR(50) NOT NULL,BALANCE INT NOT NULL,PRIMARY KEY (USERNAME),CHECK (BALANCE >= 0) -- analyzed but ignored by MySQL);
DELIMITER $$CREATE TRIGGER account_beforeInsert BEFORE INSERT ON account FOR EACH ROWBEGIN IF NEW.balance < 0 THEN -- NEW代表新的记录 SET NEW.balance = 0; END IF;END$$
DELIMITER $$CREATE TRIGGER account_beforeInsert BEFORE INSERT ON account FOR EACH ROWBEGIN IF NEW.balance < 0 THEN CALL xxx_yyy(); UPDATE _xxx_yyy SET X = 1; -- 通过调用不存在的存储过程或执行时报错的SQL来引发异常,名称尽量复杂,防止和已有或新建的表或存储过程重名。 END IF;END$$
SHOW TRIGGERS;
DROP TRIGGER [database_name.]trigger_name
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接