sql – 忽略违反重复键索引的行的插入
发布时间:2020-12-12 08:54:14 所属栏目:MsSql教程 来源:网络整理
导读:我按如下方式执行插入: INSERT INTO foo (a,b,c) SELECT x,y,z FROM fubar WHERE ... 但是,如果要插入的某些行违反了foo上的重复键索引,我希望数据库忽略这些行,而不是插入它们并继续插入其他行. 有问题的数据库是Informix 11.5.目前发生的一切都是数据库抛
我按如下方式执行插入:
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 …,但如果我错了,请随时纠正我. 解决方法使用IF语句和EXISTS函数检查现有记录.或者您可以在WHERE子句中包含该EXISTS函数,如下所示INSERT INTO foo (a,c) SELECT x,z FROM fubar WHERE (NOT EXISTS(SELECT a FROM foo WHERE ...)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLSERVER聚集索引与非聚集索引
- 我到底要做什么?
- sql-server – SharePoint 2007和SQL Server默认排序规则的
- sqlserver有没有类似sys_connect_by_path的函数-MS-SQLServ
- SQL Server Native Client下载 SQL Server Native Client安
- sqlserver 将存储过程分别导出为文件及报错解决方式
- 用户"sa"登陆失败 SQLServer 错误18456的解决方法
- sql – 在Postgres中加快缓慢的SELECT DISTINCT查询的解决方
- sql-server – 在SQLCMD for Linux中使用变量
- 使用分区依据的SQL查询