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 tableuni=# create table professoren (pnr integer primary key,lIEblingsvo integer);NOTICE: CREATE table / PRIMARY KEY will create implicit index "professoren_pkey" for table "professoren"CREATE tableuni=# alter table professoren add constraint vfk foreign key (lIEblingsvo) references vorlesungen (vnr) deferrable initially deferred;ALTER tableuni=# alter table vorlesungen add constraint pfk foreign key (gelesenvon) references professoren (pnr) deferrable initially deferred;ALTER table
到现在为止还挺好.
但现在当我想插入表格时,我得到了外键违规,尽管我指定了可延迟的最终延期:
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".
有什么问题?
解决方法 您是否明确地在之前开立交易? INSERT语句中?如果不使用BEGIN,则每个插入都是一个独立的事务,因此在每个命令的末尾强制执行外键. 总结以上是内存溢出为你收集整理的最初推迟在postgresql中推迟全部内容,希望文章能够帮你解决最初推迟在postgresql中推迟所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)