MySQL的:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Run Code Online (Sandbox Code Playgroud)
对于SQLite,您将使用ON CONFLICT REPLACE
- 请参阅http://www.sqlite.org/lang_conflict.html
REPLACE发生UNIQUE约束违规时,REPLACE算法会在插入或更新当前行之前删除导致约束违规的预先存在的行,并且命令将继续正常执行.如果发生NOT NULL约束冲突,则REPLACE冲突解决方案将NULL值替换为该列的默认值,或者如果列没有默认值,则使用ABORT算法.如果发生CHECK约束违规,则REPLACE冲突解决算法始终像ABORT一样工作.
当REPLACE冲突解决策略删除行以满足约束时,当且仅当启用了递归触发器时,删除触发器才会触发.
对于REPLACE冲突解决策略删除的行,不会调用update挂钩.REPLACE也不会增加变更计数器.本段中定义的异常行为可能会在将来的版本中发生变化.
| 归档时间: |
|
| 查看次数: |
1233 次 |
| 最近记录: |