MySQL中的唯一约束(UNIQUE Constraint)用于确保表中的某一列或多列的值是唯一的。这意味着在一个表中,唯一约束所指定的列不能有重复的值。唯一约束可以应用于单个列或多个列的组合。
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
...
);
或者
ALTER TABLE table_name
ADD UNIQUE (column_name);
假设我们有一个用户表 users
,我们希望确保 email
字段是唯一的。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100) UNIQUE,
password VARCHAR(255)
);
ALTER TABLE users
ADD UNIQUE (email);
ERROR 1062 (23000): Duplicate entry 'example@example.com' for key 'email'
原因:尝试插入的 email
已经存在于表中。
解决方法:
UPDATE
语句。-- 删除重复数据
DELETE FROM users
WHERE email IN (
SELECT email
FROM (
SELECT email, ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS row_num
FROM users
) AS subquery
WHERE row_num > 1
);
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云