【发布时间】:2023-03-27 16:37:01
【问题描述】:
在这条sql语句中
INSERT INTO child (parentId, value) SELECT parentId, value FROM temptable
child.parentId 是指向parent.id 的外键。 parent 表中的行可能会在此长时间运行的 INSERT INTO 语句(最多可插入几百万行)运行时被删除。
如果child 表在parent 中没有对应的外键之前 INSERT INTO 语句开始运行,或者如果parent 表中从child 引用的行是删除同时此INSERT INTO 正在运行,我希望INSERT INTO 静默忽略该特定行(并简单地跳过插入child 违反外键约束的行),而不是整个语句失败。
我怎样才能做到这一点?我不熟悉在这种情况下任何竞争条件如何工作。
【问题讨论】:
标签: sql postgresql foreign-keys sql-insert