最初推迟在postgresql中推迟

最初推迟在postgresql中推迟,第1张

概述我在2个表上有一个循环外键,所以我使用deferrable最初推迟如下: uni=# create table vorlesungen (vnr integer primary key, gelesenvon integer);NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "vorlesungen_pkey" for 我在2个表上有一个循环外键,所以我使用deferrable最初推迟如下:

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中推迟所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1160966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存