我创建了数据库。我有连接的表。
预订:id_book,title,author,...,secondary(表子公司的外键)
借用:id_borr,访客,...书(表格的外键)
子公司:id_subs,city,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)
);
我想表现得像: Book有一个子公司。但是在借入(某些书籍)之后,将书籍变更子公司变为NULL。
我发现只有这个例子(和类似的):http://www.techonthenet.com/oracle/triggers/after_insert.php,但我仍然不确定。
非常感谢你。
答案 0 :(得分:1)
假设您不希望对子表执行任何操作,可以按如下方式编写触发器。
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;
/