前端之家收集整理的这篇文章主要介绍了
Note4SQLite,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
ON CONFLICT子句定义了
解决约束冲突的算法。有五个选择:ROLLBACK,ABORT,FAIL,IGNORE,和REPLACE.缺省方案是ABORT.选项含义如下: ROLLBACK 当发生约束冲突,立即ROLLBACK,即结束当前事务处理,命令中止并返回
sqlITE_CONSTRAINT
代码。若当前无活动事务(除了每一条命令创建的默认事务以外),则该算法与ABORT相同。 ABORT 当发生约束冲突,命令收回已经引起的改变并中止返回
sqlITE_CONSTRAINT。但由于不执行ROLLBACK,所以前面的命令产生的改变将予以保留。缺省采用这一行为。 FAIL 当发生约束冲突,命令中止返回
sqlITE_CONSTRAINT。但遇到冲突之前的所有改变将被保留。例如,若一条UPDATE语句在100行遇到冲突100th,前99行的改变将被保留,而对100行或以后的改变将不会发生。 IGNORE 当发生约束冲突,发生冲突的行将不会被插入或改变。但命令将照常执行。在冲突行之前或之后的行将被正常的插入和改变,且不返回
错误信息。 REPLACE 当发生UNIQUE约束冲突,先存在的,导致冲突的行在更改或插入发生冲突的行之前被
删除。这样,更改和插入总是被执行。命令照常执行且不返回
错误信息。当发生NOT NULL约束冲突,导致冲突的NULL值会被字段缺省值取代。若字段无缺省值,执行ABORT算法。当冲突应对策略为满足约束而
删除行时,它不会
调用删除触发器。但在新版中这一特性可能被改变。INSERT或UPDATE的OR子句定义的算法会覆盖CREATE TABLE所定义的。ABORT算法将在没有定义任何算法时缺省使用。