SQLite数据中修改某列,对已存在的某列添加UNIQUE约束
博客专区 > xunfang 的博客 > 博客详情
SQLite数据中修改某列,对已存在的某列添加UNIQUE约束
xunfang 发表于2年前
SQLite数据中修改某列,对已存在的某列添加UNIQUE约束
  • 发表于 2年前
  • 阅读 570
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 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
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);


共有 人打赏支持
粉丝 0
博文 50
码字总数 7950
×
xunfang
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: