我使用oracle数据库10g express版来执行触发器。我的表结构如下所示:
表格文字:
create table text
(
tid number Not Null,
tname varchar2(5)
);
表格书:
create table book
(
bid number Not Null,
bname varchar2(5),
foreign key(bid) references text(tid)
);
后来在文本tabe中插入了一行:1,abc
我的问题是当我要向文本表插入一个值时,它应该自动在book表中插入一个值。
我创建了一个名为text_trig的触发器:结构如下:
create trigger text_trig after insert on text
for each row
begin
insert into book set bid=NEW.tid;
end;
/
它给了我一条警告信息:用编译错误创建触发器。
当我在文本表中插入新值时,它显示错误消息为
触发'SYSTEM.TEXT_TRIG'无效且重新验证失败。
答案 0 :(得分:0)
你错过了冒号。
set bid = :NEW.tid