📜  sql 将列更改为唯一 - SQL (1)

📅  最后修改于: 2023-12-03 15:20:16.833000             🧑  作者: Mango

使用 SQL 将列更改为唯一

在 SQL 中,可以使用 ALTER TABLE 语句更改表的结构,包括添加、删除、修改列以及设置约束等。其中,可以使用 UNIQUE 关键词将列修改为唯一列。

语法
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column_name);

其中,table_name 是要进行更改的表名,column_name 是要更改为唯一列的列名,constraint_name 是设置的约束名,可选项。

示例

假设有一个名为 customers 的表,有以下数据:

| id | name | email | |----|-------|------------------| | 1 | Alice | alice@example.com | | 2 | Bob | bob@example.com | | 3 | Alice | alice@foo.com |

现在需要将 email 列更改为唯一列,可以使用以下 SQL 语句:

ALTER TABLE customers
ADD CONSTRAINT unique_email UNIQUE (email);

执行成功后,再执行以下查询语句:

SELECT * FROM customers;

得到的结果为:

| id | name | email | |----|-------|------------------| | 1 | Alice | alice@example.com | | 2 | Bob | bob@example.com |

可以看到,第三行数据被删除了,因为这行数据的 email 值与第一行相同,已经违反了唯一性约束。

注意事项
  1. 使用 ALTER TABLE 更改表结构时,要注意备份原数据,以免意外修改数据丢失。
  2. 如果要设置多个列为联合唯一列,可以在 CONSTRAINT 语句中使用多个列名,用逗号隔开。
  3. 在 MySQL 中,如果想要在已有数据的表中设置唯一性约束,该列的值不能重复。否则,会报错“Duplicate entry”。