创建表填入数据:
CREATE DATABASE test` ; USE `test`; DROP TABLE IF EXISTS `account`; CREATE TABLE `account` ( `acct_num` int(10) unsigned NOT NULL, `amount` decimal(10,2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; insert into `account`(`acct_num`,`amount`) VALUES(137,14.98),(141,1937.50),(97,-100.00); 创建触发器:
DELIMITER $$
USE `test`$$
DROP TRIGGER `trigger`$$
CREATE
TRIGGER `trigger` BEFORE UPDATE ON `account`
FOR EACH ROW BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END;
$$
DELIMITER ;
修改数据account如果新数字小于0,就填入0,大于100,就填入100
执行下面的语句进行测试:
UPDATE account SET amount=-10 WHERE acct_num=137;
UPDATE account SET amount=2000 WHERE acct_num=141;
可以看到:
account_num amount
137 0.00
141 100.00
97 -100.00
最后
以上就是欢呼钥匙最近收集整理的关于mysql中实现触发器插入数据前校验数据的全部内容,更多相关mysql中实现触发器插入数据前校验数据内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复