| Атрибут UNIQUE в MySQL використовується для забезпечення унікальності значень у певному стовпці (або наборі стовпців) таблиці. Це означає, що кожне значення в стовпці, на який накладається атрибут UNIQUE, має бути унікальним серед усіх інших значень в цьому стовпці. Якщо під час вставки або оновлення запису буде надано значення, яке вже існує в цьому стовпці, то MySQL поверне помилку, порушуючи обмеження UNIQUE. | |
| Основне призначення | Забезпечення унікальності значень у стовпцях або комбінаціях стовпців. |
| Типи унікальності | • Одиночна унікальність: При застосуванні до одного стовпця. • Комбінаційна унікальність: При застосуванні до кількох стовпців одночасно (це означає, що комбінація значень з кількох стовпців повинна бути унікальною, але окремі значення можуть повторюватися). |
| Важливий аспект | NULL значення: В MySQL стовпець з атрибутом UNIQUE може містити NULL значення. |
Приклад одиночної унікальності:
CREATE TABLE users (
user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE,
email VARCHAR(100) UNIQUE
);
INSERT INTO users (username, email)
VALUES ('john_doe', 'john.doe@example.com');
INSERT INTO users (username, email)
VALUES ('john_doe', 'john@example.com');
INSERT INTO users (username, email)
VALUES ('', 'jack@example.com');
INSERT INTO users (username, email)
VALUES ('', '');
Приклад комбінаційної унікальності:
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
product_id INT NOT NULL,
customer_id INT NOT NULL,
order_date DATE,
UNIQUE (product_id, customer_id)
);
INSERT INTO orders (product_id, customer_id, order_date)
VALUES (1, 101, '2025-05-20');
INSERT INTO orders (product_id, customer_id, order_date)
VALUES (1, 101, '2025-05-21');
Для додаткової наочності є відео: