Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle-如何使用触发器“;在后面插入“;在两张桌子之间?_Sql_Oracle_Triggers_Oracle Sqldeveloper - Fatal编程技术网

Sql Oracle-如何使用触发器“;在后面插入“;在两张桌子之间?

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

我创建数据库。我有桌子,它们是相连的

图书:id_图书、标题、作者、…、子公司(表子公司的外键)

借用:身份证持有人、访客。。。book(表book的外键)

子公司:识别号、城市、容量等

目前我有:

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,对吗?如果是这样的话,您希望对子表执行什么操作?您是正确的,子表没有任何操作。谢谢