我执行插入行插入如下:忽略违反重复键索引
INSERT INTO foo (a,b,c)
SELECT x,y,z
FROM fubar
WHERE ...
然而,如果一些正在插入的行违反了FOO重复的关键指标,我希望数据库忽略这些行,并且不插入它们并继续插入其他行。
有问题的数据库是Informix 11.5。目前发生的只是数据库抛出异常。如果我尝试来处理异常:
ON EXCEPTION IN (-239)
END EXCEPTION WITH RESUME;
...它没有帮助,因为异常被捕获后,整个插入被跳过。
我不认为informix支持INSERT IGNORE或INSERT ... ON DUPLICATE KEY ...,但如果我错了,随时纠正我。
Informix支持离开连接吗?如果是这样,你可以不查询已经在foo中的行。 – 2010-02-01 18:15:46
Informix确实支持LEFT JOIN。它也(IDS 11.50)支持可用于插入新行或更新现有行的MERGE。 – 2010-02-02 15:32:50
我在这里错过了什么吗?为什么索引是唯一的?这听起来像这个问题应该重命名为“如何在Informix中创建一个非唯一索引?” – 2010-02-02 15:55:26