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;