SQLite数据中修改某列,对已存在的某列添加UNIQUE约束UNIQUE 约束
UNIQUE 约束防⽌在⼀个特定的列存在两个记录具有相同的值。在 COMPANY 表中,例如,您可能要防⽌两个或两个以上的⼈具有相同的年龄。
例如,下⾯的 SQLite 语句创建⼀个新的表 COMPANY,并增加了五列。在这⾥,AGE 列设置为 UNIQUE,所以不能有两个相同年龄的记录:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL UNIQUE,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00);
但是如果我要修改已存在的表中的某⼀列,对已存在的某列添加UNIQUE约束怎么办?
SQLite ⽀持 ALTER TABLE 的有限⼦集。在 SQLite 中,ALTER TABLE 命令允许⽤户重命名表,或向现有表添加⼀个新的列。重命名列,删除⼀列,或从⼀个表中添加或删除约束都是不可能的。所以利⽤普通的sql:添加唯⼀索引(约束):alter table 表名 add unique (字段名1[,字段名2,...])添加UNIQUE语句是不⾏的。怎么办?
查询SQlite官⽹中还有别的替代⽅法:
⽅法⼀:通过创建唯⼀索引来代替
唯⼀索引
使⽤唯⼀索引不仅是为了性能,同时也为了数据的完整性。唯⼀索引不允许任何重复的值插⼊到表中。基本语法如下:
CREATE INDEX index_name
创建唯一约束sql语句on table_name (column_name);
⽅法⼆:删除原来的那⼀列,创建新的带有unique 约束的列
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL UNIQUE,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论