MySQL中,唯一約束(Unique Constraint)是一種保證數據唯一性的定義方式。唯一約束可以用于表的一列或多列,用于保證這些列的組合值在表中沒有重復。
CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(100) UNIQUE, phone VARCHAR(20) UNIQUE );
在上述示例中,students表中的email和phone列都被定義為唯一約束,這意味著一個學生的email或phone不會與其他學生的相同。
唯一約束可以防止在數據庫中插入重復的數據。當嘗試插入一個已經存在的唯一約束值時,MySQL將拋出一個ER_DUP_ENTRY錯誤。
INSERT INTO students (name, email, phone) VALUES ('張三', 'zhangsan@example.com', '13888888888'); INSERT INTO students (name, email, phone) VALUES ('李四', 'zhangsan@example.com', '13999999999'); -- 拋出錯誤:Duplicate entry 'zhangsan@example.com' for key 'email'
除了在表定義中添加唯一約束外,還可以使用ALTER TABLE語句在已經存在的表上添加唯一約束。
ALTER TABLE students ADD UNIQUE (email);
唯一約束的好處是可以提高數據完整性和可靠性。在設計數據庫時,應根據數據的實際情況考慮是否需要使用唯一約束。
下一篇重設css