SQLIte语法命令

[DecID] INTEGER(16) NOT NULL PRIMARY KEY ON CONFLICT FAIL,

ON CONFLICT子句不是独立的SQL命令。这是一条可以出现在许多其他SQL命令中的非标准的子句。由于它并不是标准的SQL语言,这里单独介绍它。

ON CONFLICT子句的语法在如上的CREATE TABLE命令中示出。对于INSERT和UPDATE,关键词"ON CONFLICT"由"OR"替代,这样语法显得自然。例如,不用写"INSERT ON CONFLICT IGNORE"而是"INSERT OR IGNORE".二者表示相同的意思。

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算法将在没有定义任何算法时缺省使用。

SQLIte语法命令

时间: 2024-10-11 14:44:47

SQLIte语法命令的相关文章

[安卓基础]011存储数据(中)——sqlite语法介绍

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; text-decoration: none; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: poin

SqLite cmd命令 查看SqLiteDatabase

引言: 一直使用Eclipse开发Android.DDMS下有一个explorer可以查看data/data下各应用的数据,其中就包括database.但是这种方法只能导出来看,很不方便,于是就想到直接在adb shell里使用SqLite3命令查看更加方便. cmd命令基础: 常用命令: dir 显示文件列表 cls 清屏 cd 切换目录 ls 显示文件列表,cmd无效,adb 有效 windows应用命令,直接输入应用名字即可打开程序: (列举几个) mspaint打开画图板 notepad

redis常用语法命令

中文文档: http://redis.cn/commands.htmlredis常用语法命令1 设置keyset key value例如: set name "s_jun"设置多个key valuemset name "s_jun" age 19 sex man设置key的过期时间(ex:为秒单位)set game 'DNF' ex 5取值get key (取单个值)or mget key1 key2...key9(取多个值)2 删除keydel key1 key2

SQLite语法

一.建立数据库 sqlite3.exe test.db 二.双击sqlite-3_6_16目录下的程序sqlite3.exe,即可运行 三.退出 .exit 或者 .quit 四.SQLite支持如下5种数据类型 1.NULL:空值.2.INTEGER:带符号的整型,具体取决有存入数字的范围大小.3.REAL:浮点数字,存储为8-byte IEEE浮点数.4.TEXT:字符串文本.5.BLOB:二进制对象. 五.联系人表格结构如下 create table contact(id integer

MySQL基础语法命令

1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) N

sqlite 常用命令

1)创建数据库文件: >sqlite3 /home/test.db 回车 就生成了一个test.db在/home路径下. 这样同时也SQLite3加载了这个test.db 2)用.help可以看看有什么命令 >.help 回车即可 3)可以在这里直接输入SQL语句创建表 sqlite> CREATE TABLE company( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(

SQLite常用命令总结

1) 创建数据库文件: >SQLite3 d:\test.db 回车 就生成了一个test.db在d盘. 这样同时也SQLite3挂上了这个test.db 2) 用.help可以看看有什么命令 >.help 回车即可 3)可以在这里直接输入SQL语句创建表格,用;结束,然后回车就可以看到了 4)看看有创建了多少表 >.tables 5)看表结构 >.schema 表名 6)看看目前挂的数据库 >.database 7)如果要把查询输出到文件 >.output 文件名 &

MYSQL基本语法命令

MySQL服务的启动.停止与卸载 在 Windows 命令提示符下运行: 启动: net start MySQL 停止: net stop MySQL 卸载: sc delete MySQL 对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linux\unix 系统来说, 这些标识符大小写是敏感的. 语句: MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 他是由 SQL 标准语句 + MySQL 扩展语句组成. MySQL有

hive的语法命令介绍

1.hive的基本语法: create databases mydb #创建数据库 show databases #查看所有的库 use mydb #切换数据库 create table t_user(id int ,name string,age int) #创建表 create table t_user(id int ,name string,age int) row format delimited fields terminated by '分隔符' #指定分隔符的建表语句 insert