我正在寻求有关触发器的帮助。
我有如下表格。
CREATE TABLE Autorzy(Id_autora numeric(5), Imie varchar(15), Nazwisko varchar(20), constraint auth_pk PRIMARY KEY (Id_autora));
CREATE TABLE Ksiazki(ISBN numeric(10) PRIMARY KEY, Wydawca varchar(30), Tytul varchar(70), Rok numeric(4));
CREATE TABLE Autorstwa (ISBN numeric(10) references Ksiazki, Id_autora numeric(5) references Autorzy);
CREATE TABLE Tematy (Nrtematu numeric(4) PRIMARY KEY, Nazwa varchar(20), Wyjasnienie varchar (100));
CREATE TABLE Na_temat( ISBN numeric(10) references Ksiazki, Nrtematu numeric(10) references Tematy);
create sequence id_autora_seq
start with 1
increment by 1
;
create sequence isbn_seq
start with 1
increment by 1
;
我必须为表 Autorzy、Ksiazki 和 Autorstwa 实现插入。
我已经准备好插入如下
insert into Autorzy
values( Id_autora_seq.nextval, 'Jan', 'Mak');
insert into Ksiazki
values (isbn_seq.nextval, 'ABC', 'Poradnik', 2010);
我不知道如何更新 Autorstwa 表。
我尝试使用如下触发器
create or replace
trigger Autorstwa_auth
after insert or update on keiishi.Autorzy
for each row
begin
insert into Autorstwa (Id_autora)
values (:new.id_autora);
end;
create or replace
trigger Autorstwa_ks
after insert or update on keiishi.Ksiazki
for each row
begin
insert into Autorstwa (ISBN)
values (:new.ISBN);
end;
它在 Autorstwa 表中创建了两行,这对我来说是不可接受的。
谁能解释我如何触发多个表的更新?
或者其他一些方法我怎么能做到?
提前致谢。
此致
启石