【发布时间】:2018-03-27 08:43:05
【问题描述】:
您好,我仅在满足条件时才尝试在第二个触发器中使用第一个触发器的新 ID 插入值,但我被卡住了。
table1_trg 有效
CREATE TABLE table1 (
id NUMBER(9,0) NOT NULL,
subject VARCHAR2(200) NOT NULL,
url_address VARCHAR2(200) NOT NULL,
)
CREATE OR REPLACE TRIGGER table1_trg
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
SELECT table1_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/
CREATE OR REPLACE TRIGGER table1_url
BEFORE INSERT ON table1
FOR EACH ROW
WHEN (NEW.subject = 'Task')
BEGIN
INSERT INTO CSB.table1 (url_address)
VALUES ('blabla.com?' || :new.id);
END;
/
我只插入主题,但之后我收到subject 不能为空的异常。
INSERT INTO corp_tasks_spec (subject) VALUES ('Task')
有什么解决办法吗?
【问题讨论】:
-
您是否真的希望它创建第二行 - 因此,当您插入任务记录时,它还会使用第一行的 ID 使用该 URL 创建一个完全独立的行?第一行的 URL 值是什么,或者第二行的主题是什么?您似乎更有可能只想得到一个同时设置了 ID 和 URL 的单行,对吧?