我的本意是想这样,创建primary key为id的表temp1,创建primary key为id的表temp2,temp2的id外键约束到temp1的id, 然后加入我已经给temp1插入了一条数据,然后给temp2插入id相同的一条数据,但是我希望temp2表中的name值能自动地被赋值为temp1中那个id所在的name值。 于是我这样创建表temp1,temp2,和促发器 temp2_trigger. 但是下面的触发器的语法是错误的,我百思不得其解...
create table temp1
(
id int not null primary key,
name varchar2(20)
);
create table temp2
(
id int not null primary key,
name varchar2(20),
other varchar2(20),
constraint foreign_1 foreign key (id) references temp1(id),
) create or replace trigger temp2_trigger
before insert on temp2
for each row
begin
select temp1.name into :new.name from temp1 where temp1.id=temp2.id
;end temp2_trigger;
/
create table temp1
(
id int not null primary key,
name varchar2(20)
);
create table temp2
(
id int not null primary key,
name varchar2(20),
other varchar2(20),
constraint foreign_1 foreign key (id) references temp1(id),
) create or replace trigger temp2_trigger
before insert on temp2
for each row
begin
select temp1.name into :new.name from temp1 where temp1.id=temp2.id
;end temp2_trigger;
/
解决方案 »
- oracle 10g 在redhat linux as 4安装出现这个问题"OUI-10036:无法创建产品清单位置,您可能无权写入该位置"
- 老问题:SQL 行转列问题
- 如何使用结果集更新其他的表?谢谢了!
- sql之神,才能写出的语句; 如果没有sql之神,请高手share存储过程要怎么写?在线等!谢谢!
- 如何判断一个表已经生成
- OMS 的简单问题 大家帮帮初学者
- 请教一个pl/sql 的问题?
- 在 win2k server 上 oracle9ias 怎么裝?
- 存储过程中的函数问题.
- 关于安全备份的问题
- 插入1000多条记录到一个表里竞要十多秒????
- 我想做个能用到数据库的软件!大家给个意见
after insert on temp2
for each row
begin
update temp2 set name=(select name from temp1 where id=:new.id);
end temp2_trigger;
/
create or replace trigger temp2_trigger
after insert on temp2
for each row
begin
update temp2 set name=(select name from temp1 where id=:new.id) where id=:new.id;
end temp2_trigger;
/
after insert on temp2
for each row
begin
select temp1.name into :new.name from temp1 where temp1.id=:new.id;
end temp2_trigger;
/
create or replace trigger temp2_trigger
before insert on temp2
for each row
declare
v_name varchar2(20);
begin
select name into v_name from temp1 where id=:new.id;
:new.name:=v_name;
end;