📅  最后修改于: 2023-12-03 15:33:03.081000             🧑  作者: Mango
在 MySQL 中,唯一两列是指在表格中定义两个列为唯一的列,确保每个组合都必须是唯一的,这对于许多应用程序非常有用。
在创建 MySQL 表时,可以将两个或多个列定义为唯一两列。
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype UNIQUE
);
以下示例创建了一个名为 employees
的表,其中 employee_id
和 email
列组合成唯一两列:
CREATE TABLE employees (
employee_id INT(11) NOT NULL,
email VARCHAR(255) NOT NULL,
...
UNIQUE (employee_id, email)
);
向唯一两列中插入数据时,将检查组合是否已存在。如果唯一两列的值组合已存在,则插入操作将失败。
以下示例尝试将两个员工数据插入到 employees
表中,第二个员工的 employee_id
和 email
值与第一个员工相同,因此将失败:
INSERT INTO employees (employee_id, email, ...) VALUES (1, 'john@example.com', ...);
INSERT INTO employees (employee_id, email, ...) VALUES (1, 'john@example.com', ...);
可以通过唯一两列进行查询,这将检索与指定值组合匹配的所有行。
以下示例查询了所有具有 employee_id
值 1 和 email
值为 john@example.com
的员工:
SELECT * FROM employees WHERE employee_id = 1 AND email = 'john@example.com';
如果需要更改唯一两列的值,请确保不会更改为已存在的组合。这可以通过先删除旧记录,然后插入新记录来完成。
以下示例更新了 employee_id
为 1 的员工的 email
值为 new_email@example.com
:
DELETE FROM employees WHERE employee_id = 1 AND email = 'john@example.com';
INSERT INTO employees (employee_id, email, ...) VALUES (1, 'new_email@example.com', ...);
如果需要从表中删除记录,请使用 DELETE
语句。删除操作将一次删除多个行。
以下示例删除了 employee_id
值为 1 和 email
值为 john@example.com
的员工记录:
DELETE FROM employees WHERE employee_id = 1 AND email = 'john@example.com';
通过在 MySQL 表中定义唯一两列,可以确保每个组合都必须是唯一的。这对于确保数据的完整性非常有用,并且可以避免出现重复记录。