转至:http://www.sqlite.com.cn/MySqlite/5/72.htmlsqlite的sql语法
ONCONFLICT子句
conflict-clause::= | ONCONFLICTconflict-algorithm |
conflict-algorithm::= | ROLLBACK|ABORT|FAIL|IGNORE|REPLACE |
ONCONFLICT子句不是独立的sql命令。这是一条可以出现在许多其他sql命令中的非标准的子句。由于它并不是标准的sql语言,这里单独介绍它。
ONCONFLICT子句的语法在如上的CREATETABLE命令中示出。对于INSERT和UPDATE,关键词"ONCONFLICT"由"OR"替代,这样语法显得自然。例如,不用写"INSERTONCONFLICTIGNORE"而是"INSERTORIGNORE".二者表示相同的意思。
ONCONFLICT子句定义了解决约束冲突的算法。有五个选择:ROLLBACK,ABORT,FAIL,IGNORE,和REPLACE.缺省方案是ABORT.选项含义如下:
- ROLLBACK
-
当发生约束冲突,立即ROLLBACK,即结束当前事务处理,命令中止并返回sqlITE_CONSTRAINT代码。若当前无活动事务(除了每一条命令创建的默认事务以外),则该算法与ABORT相同。