问题描述
我有此表和约束条件:
table_ttt (
id1,-- UNIQUE CONSTRAINT WHERE id1_ref IS NULL AND id2_ref IS NULL
id2,id1_ref,-- FOREIGN KEY (id1_ref,id2_ref) ON table_ttt (id1,id2)
id2_ref,data ...
)
,并且此单一语句具有多种效果:
WITH delta_list AS (
-- compute a list of rows
),update_refs AS (
UPDATE (id1_ref,id2_ref) to new rows (id1,id2) not yet INSERTed
)
INSERT some rows with the new (id1,id2),that will have (NULL,NULL) in (id1_ref,id2_ref)
问题陈述:
- 如果我先执行UPDATE,则FK约束将失败
- 如果我反转INSERT和UPDATE的顺序并首先执行INSERT,则UNIQUE约束将失败
- 即使是一小段行,我也无法对其进行测试,因为这样做的成本高昂。
我的问题是:
Postgres在执行这条语句后会检查两个约束,它将运行吗?
编辑:在9.4.11上运行它,它将实现CTE(也许此时将检查约束?)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)