某些SQL Server具有一项功能,如果INSERT违反主键/唯一键约束,则会跳过该功能。例如,MySQL有INSERT IGNORE
使用PostgreSQL模拟重复密钥更新时插入忽略和的最佳方法是什么
在PostgreSQL 9.5中,这现在是本机功能(就像MySQL已经有好几年了):
插入。。。冲突时不做任何事/更新(“升级”)
9.5为“升级”操作提供支持。
INSERT被扩展为接受一个ON CONFLICT DO UPDATE/IGNORE子句。本条款规定了在可能发生重复违规的情况下采取的替代措施
新语法的进一步示例:
插入用户登录(用户名、登录名)
值('Naomi',1),('James',1)
关于冲突(用户名)
DO UPDATE SET logins=用户\登录名.logins+排除名.logins;