Что такое первичный ключ (Primary Key) и какова его роль в базах данных?

Ответ

Первичный ключ (Primary Key, PK) — это столбец или набор столбцов в таблице, который однозначно идентифицирует каждую запись. Его главная задача — обеспечивать целостность и уникальность данных.

Ключевые функции и свойства:

  1. Уникальность: Каждое значение первичного ключа в таблице должно быть уникальным. Не может быть двух записей с одинаковым PK.
  2. Отсутствие NULL: Первичный ключ не может содержать значения NULL. Каждая запись обязана иметь значение PK.
  3. Индексация: Большинство СУБД автоматически создают кластеризованный индекс для первичного ключа, что обеспечивает максимально быстрый доступ к данным при поиске по ключу.
  4. Связывание таблиц: PK используется для установления связей между таблицами. В другой таблице он выступает в роли внешнего ключа (Foreign Key), обеспечивая ссылочную целостность.

Пример в SQL:

CREATE TABLE users (
    id SERIAL PRIMARY KEY, -- `SERIAL` в PostgreSQL автоматически создает последовательность
    username VARCHAR(50) NOT NULL UNIQUE
);

Пример в Go с GORM:
В Go ORM, таких как GORM, поле ID в структуре по умолчанию становится первичным ключом.

type User struct {
    gorm.Model // Включает поля ID, CreatedAt, UpdatedAt, DeletedAt.
               // ID uint `gorm:"primaryKey"` является первичным ключом.
    Name string
}