
四)、触发器。
1.定义表 TAB,并在其上定义触发器 TRI,在对 TAB 的插入和更新前检查,如果插
入或更新的值在 100-1000 之间的话,将值置为 50;如果值大于 1000 的话,则
给出新值不允许大于 1000 的提示。
CREATE TABLE tab(col int);
INSERT INTO tab VALUES(10);
INSERT INTO tab VALUES(20);
CREATE TRIGGER tri BEFORE UPDATE OR INSERT ON tab
FOR EACH ROW
AS
BEGIN
IF new.col>100 AND new.col<1000 THEN
new.col:=50;
END IF;
IF new.col>1000 THEN
RAISE EXCEPTION‘New values can not more than 1000’;
END IF;
END;
检测:1)向表 TAB 插入数据(150)。
执行:INSERT INTO TAB VALUES(150);
结果:插入的数据为 150。值在 100-1000 之间,触发器 TRI 自动执行,将插入
的值置为 50。
2)对表中的数据进行更新,将 20 更新为 1500。
执行:UPDATE TAB SET COL=1500 WHERE COL=20;
结果:系统报出‘New values can not more than 1000’的错误,
对表进行查询后发现,表中的数据并没有发生改变。说明在更新数据时,值大于
1000
则触发触发器 TRI 自动执行,系统报错,更新无效。
2.删除触发器 TRI。
DROP TRIGGER TRI ON TAB;