INSERT插入后的ORACLE TRIGGER

时间:2018-05-30 17:46:51

标签: sql oracle plsql

我需要触发器的帮助。需要触发器 写一个表ZVIRE_SeznamZmen。这个触发后我总是得到插入错误。

create table ZVIRE(
ID INT PRIMARY KEY,
NAZEV VARCHAR(30) NOT NULL,
DRUH VARCHAR(30) NOT NULL,
JMENO VARCHAR(30) NOT NULL);

create table ZVIRE_SeznamZmen(
ID_ int primary key,
NAZEV VARCHAR(30),
DRUH VARCHAR(30),
JMENO VARCHAR(30),
ZMENA_DRUH VARCHAR(30),
ZMENA_DATUM timestamp);

create trigger ZvireInsert 
AFTER insert on  ZVIRE
for each row
begin
insert into ZVIRE_SeznamZmen(ID_,NAZEV,DRUH,JMENO,ZMENA_DRUH,ZMENA_DATUM) VALUES(:NEW.ID_,:NEW.NAZEV,:NEW.DRUH,:NEW.JMENO,'Insert',SYSTIMESTAMP);
END;

错误:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/82     PLS-00049: bad bind variable 'NEW.ID_'

1 个答案:

答案 0 :(得分:-1)

是的,@威廉是对的,它是下划线:

CREATE OR REPLACE TRIGGER ZvireInsert 
  AFTER INSERT ON ZVIRE
  FOR EACH ROW
BEGIN
  insert into ZVIRE_SeznamZmen(ID_,NAZEV,DRUH,JMENO,ZMENA_DRUH,ZMENA_DATUM) 
  VALUES(:NEW.ID,:NEW.NAZEV,:NEW.DRUH,:NEW.JMENO,'Insert',SYSTIMESTAMP);
END; 
/

Trigger ZVIREINSERT compiled