编辑用于创建触发器的安装脚本
如果应用程序在源表上有 BEFORE INSERT 触发器,并且您要将源表中的数据插入对应的新表,则必须决定是否希望安装脚本中的每个 INSERT 语句在将数据插入新表之前触发触发器。
例如,在将行插入到 EVALUATIONS 表之前,NEW_EVALUATION_TRIGGER(在“教程:创建在插入行之前为行生成主键的触发器”中创建)会触发。触发器使用 EVALUATIONS_SEQUENCE 为该行的主键生成唯一编号。
源 EVALUATIONS 表用主键填充。如果不希望安装脚本将新主键值放入新 EVALUATIONS 表,则必须在安装脚本中编辑如图所示的 CREATE TRIGGER 语句:
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
IF :NEW.evaluation_id IS NULL THEN
:NEW.evaluation_id := evaluations_sequence.NEXTVAL
END IF;
END;
此外,如果序列的当前值不大于主键列中的最大值,则必须使其变大。
您可以在工作表或任何文本编辑器中编辑安装脚本。
以下步骤是编辑安装脚本的两个替代方法:
-
在源文件中更改触发器定义,然后重新创建安装脚本。
有关更改触发器的信息,请参阅“更改触发器”。
-
在运行数据安装脚本之前禁用触发器,之后再重新启用它。
有关禁用和启用触发器的信息,请参阅“禁用和启用触发器”。
另请参阅:“创建触发器”