• 如果修改后的值大于100,则值为100 • 如果修改后的值小于0,则值为0 • 如果修改后的值为旧值2倍以上,则值为旧值2倍
19
建表脚本
➢ CREATE DATABASE IF NOT EXISTS mydb; ➢ USE mydb;
➢ DROP TABLE IF EXISTS `account`; ➢ CREATE TABLE `account` ( ➢ `id` int(10) unsigned NOT NULL auto_increment, ➢ `user` varchar(45) NOT NULL, ➢ `amount` int(11) NOT NULL default '0', ➢ PRIMARY KEY (`id`) ➢ ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; ➢ INSERT INTO `account` (`id`,`user`,`amount`) VALUES ➢ (1,'李知龙',55), ➢ (2,'卢中明',80), ➢ (3,'乔大平',30);
• 可在before触发器中赋值、取值 • 可在after触发器中取值
old
• 只能用于取值,因为赋值没意义
INSERT语句,只有new合法 DELETE语句,只有old才合法 UPDATE语句,可以同时使用new和old
18
课程练习2
➢ 创建触发器:
upd_check
➢ 功能作用:
修改Account表中的记录的amount字段时,作如下检查:
4
触发器作用
➢ 数据约束
实现数据完整性检查和约束