UNIQUE 约束sql
UNIQUE 约束防止在一个特定的列存在两个记录具备相同的值。在 COMPANY 表中,例如,您可能要防止两个或两个以上的人具备相同的年龄。性能
例如,下面的 SQLite 语句建立一个新的表 COMPANY,并增长了五列。在这里,AGE 列设置为 UNIQUE,因此不能有两个相同年龄的记录:spa
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约束怎么办?code
SQLite 支持 ALTER TABLE 的有限子集。在 SQLite 中,ALTER TABLE 命令容许用户重命名表,或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的。因此利用普通的sql:添加惟一索引(约束):alter table 表名 add unique (字段名1[,字段名2,...])添加UNIQUE语句是不行的。怎么办?索引
查询SQlite官网中还有别的替代方法:it
方法一:经过建立惟一索引来代替
table
惟一索引class
使用惟一索引不只是为了性能,同时也为了数据的完整性。惟一索引不容许任何重复的值插入到表中。基本语法以下:语法
CREATE INDEX index_name 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);