SQLite中特殊的INSERT语句

SQLite中特殊的INSERT语句

在SQLite中,INSERT是基本语句,用来向表中插入数据。但是当表中存在字段存在唯一、非空、检查、主键等约束时,插入的数据很容易和约束冲突,造成插入操作失败。为了解决这类问题,SQLite提供集中特殊的INSERT语句。下面依次介绍一下:

(1)INSERT OR REPLACE语句:如果引起约束冲突,则取消插入操作。如果是与唯一、主键约束冲突,则将已存在的数据进行更新。如果是与非空约束操作,并且存在默认值设置,则将冲突的空列使用默认值替代,然后插入;否则,按照INSERT OR ABORT方式执行。如果是与检查约束冲突,则按照INSERT OR ABORT执行。

(2)INSERT OR ABORT语句:如果引起约束冲突,则取消该插入操作。如果在一个事务中,不会回滚当前事务,继续执行当前事务的后续操作。

(3)INSERT OR ROLLBACK语句:如果引起约束冲突,则取消该插入操作。如果在一个事务中,会回滚当前事务。

(4)INSERT OR FAIL语句:如果引起约束冲突,则取消该插入操作。如果在一个事务中,不会回滚当前事务,但会取消当前事务的后续操作。

(5)INSERT OR IGNORE语句:如果引起约束冲突,则取消该插入操作。如果在一个事务中,不会回滚当前事务,继续执行当前事务的后续操作。与INSERT OR ABORT不同的,它不会触发SQLITE_CONSTRAINT错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [TOC] SQL语句 表相关语句 创建表 temp, temporary:表示创建的表是临时表,只在当前会话有效...
    老干妈拌饭阅读 844评论 0 0
  • 官网:http://www.sqlite.org/lang.html (他人的中文翻译http://blog.cs...
    liboxiang阅读 3,911评论 0 6
  • 这个SQLite快速入门教程教你如何有效地开始学习并使用SQLite。通过本教程的实践操作学习之后,相信你应该可以...
    易百教程阅读 36,116评论 1 67
  • 事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行,这称为数据库完整性的原子性原...
    我系哆啦阅读 1,146评论 0 9
  • 师母打电话来,说是腰部疼痛两天,不知咋回事。我顺便买了中午的菜和面就过去了。看腰部稍肿,还是去年扭伤的地方。...
    飘逸的云5812阅读 2,598评论 1 1