Первичный ключ и внешний ключ — фундаментальные понятия в реляционных базах данных. Вот разница между ними:
-
Первичный ключ:
- Первичный ключ – это столбец или комбинация столбцов, которые уникальным образом идентифицируют каждую запись в таблице.
- Оно должно иметь уникальное значение для каждой строки таблицы.
- В каждой таблице может быть только один первичный ключ.
- Первичные ключи используются для обеспечения целостности объекта и обеспечения согласованности данных.
- Обычными примерами первичных ключей являются целые числа с автоматическим приращением или уникальные идентификаторы, такие как номера социального страхования или адреса электронной почты.
-
Внешний ключ:
- Внешний ключ – это столбец или комбинация столбцов в одной таблице, который ссылается на первичный ключ в другой таблице.
- Он устанавливает связь между двумя таблицами, обеспечивая ссылочную целостность.
- Внешние ключи гарантируют, что значения в ссылающихся столбцах существуют в столбцах первичного ключа ссылочной таблицы.
- Таблица может иметь несколько внешних ключей.
- Внешние ключи используются для определения связей между таблицами и обеспечения целостности данных.
Методы создания первичных и внешних ключей в системе управления базами данных (СУБД) различаются в зависимости от конкретной используемой системы. Вот некоторые распространенные методы:
-
Методы создания первичного ключа:
- Вручную присвойте уникальное значение столбцам первичного ключа для каждой записи.
- Используйте функцию автоматического приращения, предоставляемую СУБД, для автоматического создания уникальных значений первичного ключа.
- Сгенерировать первичные ключи с помощью внешней системы или алгоритма и импортировать их в СУБД.
-
Методы создания внешнего ключа:
- Укажите ограничение внешнего ключа во время создания таблицы, указав ссылочную таблицу и столбец(и).
- Используйте оператор ALTER TABLE, чтобы добавить ограничение внешнего ключа к существующей таблице.
- Определите каскадные действия, такие как КАСКАДНОЕ УДАЛЕНИЕ или КАСКАДНОЕ ОБНОВЛЕНИЕ, для поддержания ссылочной целостности при возникновении изменений в ссылочной таблице.