Модуль 00 · урок 6
Первинний ключ: як відрізнити рядки
У магазині GadgetHub є два товари з однаковою назвою Cotton T-Shirt — від різних постачальників. Як засновнику точно вказати на ОДИН конкретний, а не переплутати? Потрібен надійний ідентифікатор.
Проблема: однакові назви
Назва не завжди унікальна — два товари можуть зватися однаково. Як тоді точно вказати на ОДИН рядок? Потрібен гарантовано унікальний ідентифікатор.
Первинний ключ
Первинний ключ (PRIMARY KEY) — це стовпець, що унікально визначає кожен рядок. У products це id.
Він:
- унікальний — двох рядків з однаковим
idбути не може; - не порожній —
idзавжди має значення (ніколи неNULL, а що такеNULL, дізнаєшся в наступному уроці); - стабільний — після створення його не міняють.
Завдяки id можна точно сказати «товар №7», навіть якщо є десять товарів з однаковою назвою. Зазвичай id присвоюється автоматично: СКБД сама видає наступний номер (тип SERIAL), тож тобі про це думати не треба.
Подивись сам
У завданні — запит, що виводить id і name, відсортовані за id. Поглянь: два товари звуться Cotton T-Shirt, але їхні id різні — саме id їх і розрізняє.
Підсумок
PRIMARY KEY/idдає змогу однозначно знайти будь-який рядок — навіть якщо назви повторюються.- Унікальний, не
NULL, стабільний. idзазвичай генерується автоматично (SERIAL).