Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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
postgresql中的可延迟初始延迟_Sql_Foreign Keys_Postgresql_Deferrable Constraint - Fatal编程技术网

postgresql中的可延迟初始延迟

postgresql中的可延迟初始延迟,sql,foreign-keys,postgresql,deferrable-constraint,Sql,Foreign Keys,Postgresql,Deferrable Constraint,我在两个表上有一个循环外键,所以我使用Delerable Initial deferred,如下所示: uni=# create table vorlesungen (vnr integer primary key, gelesenvon integer); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "vorlesungen_pkey" for table "vorlesungen" CREATE TABLE u

我在两个表上有一个循环外键,所以我使用Delerable Initial deferred,如下所示:

uni=# create table vorlesungen (vnr integer primary key, gelesenvon integer);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "vorlesungen_pkey" for table "vorlesungen"
CREATE TABLE
uni=# create table professoren (pnr integer primary key, lieblingsvo integer);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "professoren_pkey" for table "professoren"
CREATE TABLE
uni=# alter table professoren add constraint vfk foreign key (lieblingsvo) references vorlesungen (vnr) deferrable initially deferred;
ALTER TABLE
uni=# alter table vorlesungen add constraint pfk foreign key (gelesenvon) references professoren (pnr) deferrable initially deferred;
ALTER TABLE
到目前为止还不错。 但是现在,当我想插入到表中时,我会遇到外键冲突,尽管我指定了delferrable initially deferred:

uni=# insert into vorlesungen values (1, 1);
ERROR:  insert or update on table "vorlesungen" violates foreign key constraint "pfk"
DETAIL:  Key (gelesenvon)=(1) is not present in table "professoren".

uni=# insert into professoren values (1, 1);
ERROR:  insert or update on table "professoren" violates foreign key constraint "vfk"
DETAIL:  Key (lieblingsvo)=(1) is not present in table "vorlesungen".

有什么问题吗?

您是否在 插页?如果不使用BEGIN,则每个insert都是一个独立的事务,因此在每个命令的末尾强制使用外键