在 MySQL 中,可以通过 ALTER TABLE
语句向现有表的字段添加唯一约束(UNIQUE constraint)。唯一约束确保字段中的所有值都是唯一的,允许 NULL
值(但每行只能有一个 NULL
)。
以下是添加唯一约束的几种方法:
ALTER TABLE
添加唯一约束假设有一个名为 users
的表,您想向 email
字段添加唯一约束:
ALTER TABLE users
ADD CONSTRAINT unique_email UNIQUE (email);
这条语句会在 email
字段上创建一个名为 unique_email
的唯一约束。
如果您正在创建一个新表,可以在创建表的同时为字段添加唯一约束。例如:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
UNIQUE (email)
);
或者使用 CONSTRAINT
关键字:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
CONSTRAINT unique_email UNIQUE (email)
);
虽然唯一索引和唯一约束在功能上类似,但有时使用唯一索引会更灵活。例如:
ALTER TABLE users
ADD UNIQUE INDEX unique_email (email);
NULL
值,因为 NULL
被认为是未知的,所以多个 NULL
不被视为重复。如果需要删除已有的唯一约束,可以使用 ALTER TABLE
语句。例如,删除上面创建的 unique_email
约束:
ALTER TABLE users
DROP INDEX unique_email;
或者,如果知道约束名称,可以直接使用:
ALTER TABLE users
DROP CONSTRAINT unique_email;
通过 ALTER TABLE
语句,可以方便地向现有表的字段添加唯一约束,以确保数据的唯一性。这在维护数据完整性方面非常有用。
领取专属 10元无门槛券
手把手带您无忧上云