SQLite数据中修改某列,对已存在的某列添加UNIQUE约束

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);
相关文章
相关标签/搜索