2021-10-01 乐帮网
sqlite
SQLLite中多字段约束怎么设置呢?我们常用的是设置一个字段的约束设置为unique。如果是要约束多个字段呢?通常我们是这样使用的:
Create Table test(code varchar(10) unique not null)
Insert into test(code)
values('00000');
当重复执行 Insert时会遇到错误:[20:45:52] Error while executing SQL query on database 'test': UNIQUE constraint failed: test.code
如果我们设置两个字段的唯一约束呢?以下是个简单的示例:
Create Table devices(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
code varchar(10) not null,
model char(4) not null,
name text not null,stauts INTEGER NOT NULL DEFAULT (0),
updatedate DATETIME DEFAULT (datetime('now', 'localtime') ) ,
updater TEXT DEFAULT(''),
UNIQUE(code, model) ON CONFLICT REPLACE);
Insert into devices(code,model,name)
Values('RTM-2019-QWM','W001','模型1')
Insert into devices(code,model,name)
Values('RTM-2019-QWM','W001','模型2')
执行以上语句会有什么结果呢?它可能会得到你想不到的结果,
[20:38:14] Query finished in 0.024 second(s). Rows affected: 1
重复执行也没有问题,但是会执行REPLACE,但表中数据始终是一条。
ID code model name stauts updatedate updater
4 RTM-2019-QWM W001 模型2 0 2021-10-01 20:39:27
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力