Атрибут UNIQUE

Атрибут 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');

Для додаткової наочності є відео:

Leave a Reply

Your email address will not be published. Required fields are marked *