Sql Oracle-如何使用触发器“;在后面插入“;在两张桌子之间?
我创建数据库。我有桌子,它们是相连的 图书:id_图书、标题、作者、…、子公司(表子公司的外键) 借用:身份证持有人、访客。。。book(表book的外键) 子公司:识别号、城市、容量等 目前我有:Sql Oracle-如何使用触发器“;在后面插入“;在两张桌子之间?,sql,oracle,triggers,oracle-sqldeveloper,Sql,Oracle,Triggers,Oracle Sqldeveloper,我创建数据库。我有桌子,它们是相连的 图书:id_图书、标题、作者、…、子公司(表子公司的外键) 借用:身份证持有人、访客。。。book(表book的外键) 子公司:识别号、城市、容量等 目前我有: create table subsidiary ( id_subs smallint primary key, city varchar(50), capacity
create table subsidiary
(
id_subs smallint primary key,
city varchar(50),
capacity integer
);
create table book
(
id_book integer primary key,
title varchar(1000),
author varchar(100),
subsidiary smallint null,
FOREIGN KEY (subsidiary) REFERENCES subsidiary(id_subs)
);
create table borrowing
(
id_borr integer primary key,
book integer null,
visitor varchar(100),
FOREIGN KEY (book) REFERENCES book(id_book)
);
我想说:这本书有一个子公司。但插入借阅(某些书籍)后,书籍更改子公司为空。
我只找到了这个例子(和类似的例子):,但我仍然不确定
非常感谢。假设您不希望对辅助表进行任何操作,您可以编写如下触发器
CREATE OR REPLACE TRIGGER trg_borrowing
AFTER INSERT ON borrowing
FOR EACH ROW
BEGIN
UPDATE book
SET subsidiary = NULL
WHERE id_book = :NEW.book;
END;
/
您的意思是,当在借阅中插入新行时,book表中的subsidiary将设置为null,对吗?如果是这样的话,您希望对子表执行什么操作?您是正确的,子表没有任何操作。谢谢