Oracle 触发器替换记录中的值
Oracle Trigger to replace values in a record
我想更新来自 table 的列中的插入值,但前提是它与来自不同列的值匹配。
所以两条记录都在同一个 table 中,但是如果 test_lead_id 对应于某些值,我们只想更新值 test_id。
我正在尝试这个,但没有运气....
`CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW BEGIN
IF :old.test_id = '1000' then
:new.test_id := '2000'
WHEN test_lead_id in ('150','151');
END IF;
END;
`
感谢任何帮助。
非常感谢
是这样的吗?
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT
ON "test_list"
FOR EACH ROW
BEGIN
IF :new.text_lead_id IN ('150', '151')
AND :old.test_id = '1000'
THEN
:new.text_id := '2000';
END IF;
END;
插入语句没有 old
值。试试这个:
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW
WHEN (NEW.test_lead_id in ('150','151'))
BEGIN
IF :new.test_id = '1000' then
:new.test_id := '2000';
END IF;
END;
或者
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW
WHEN (NEW.test_lead_id in ('150','151') and new.test_id = '1000')
BEGIN
:new.test_id := '2000';
END;
我想更新来自 table 的列中的插入值,但前提是它与来自不同列的值匹配。 所以两条记录都在同一个 table 中,但是如果 test_lead_id 对应于某些值,我们只想更新值 test_id。 我正在尝试这个,但没有运气....
`CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW BEGIN
IF :old.test_id = '1000' then
:new.test_id := '2000'
WHEN test_lead_id in ('150','151');
END IF;
END;
`
感谢任何帮助。 非常感谢
是这样的吗?
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT
ON "test_list"
FOR EACH ROW
BEGIN
IF :new.text_lead_id IN ('150', '151')
AND :old.test_id = '1000'
THEN
:new.text_id := '2000';
END IF;
END;
插入语句没有 old
值。试试这个:
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW
WHEN (NEW.test_lead_id in ('150','151'))
BEGIN
IF :new.test_id = '1000' then
:new.test_id := '2000';
END IF;
END;
或者
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON "test_list"
FOR EACH ROW
WHEN (NEW.test_lead_id in ('150','151') and new.test_id = '1000')
BEGIN
:new.test_id := '2000';
END;