Первичные и внешние ключи в pgAdmin

Мне было интересно, может ли кто-нибудь объяснить мне, как назначать первичные и внешние ключи в pgAdmin?

Я не могу найти какую-либо информацию в Интернете.

Например... У меня есть таблица Student со всеми их подробностями (адрес, d.o.b. и т.д.). Я собираюсь добавить student_number в таблицу и сделать ее первичным ключом.

Я просто хочу знать, как это сделать, используя pgAdmin? И если вы можете быть добрыми, чтобы объяснить, дайте мне дополнительную информацию об использовании Первичных ключей в postgreSQL (и pgAdmin). Тот же случай с внешними ключами.

Ответ 1

В pgAdmin нет возможности добавить столбец в существующую таблицу и сделать его первичным ключом одновременно, потому что это вряд ли возможно.

Столбец первичного ключа должен содержать уникальные ненулевые значения. После добавления столбца в существующую таблицу он содержит значения NULL. Поэтому перед добавлением ограничений UNIQUE или PRIMARY KEY необходимо ввести уникальные значения.

Для этого правила существует исключение. Если вы добавите serial, уникальные значения вставляются автоматически. В этом случае вы также можете сразу определить его ПЕРВИЧНЫЙ КЛЮЧ:

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;

Это работает в PostgreSQL 9.1. Я также не уверен, что это делается в более старых версиях.

pgAdmin не включает этот специальный случай для столбцов serial в диалоговом окне "Новый столбец..." в это время (версия 1.14).

Ответ 2

Да, есть способ добавить первичный и внешний ключи в pgAdmin.

Протестировано в pgAdmin III Ver.1.16.1 (Windows 7)

  • Выберите нужную таблицу
  • Ctrl + Alt + Enter или щелкните правой кнопкой мыши/Свойства
  • Выберите вкладку "Ограничения"
  • В левой нижней части формы вы увидите опцию "Основной ключ"
  • Нажмите кнопку
  • Выберите вкладку "Столбцы"
  • Выберите нужный столбец в качестве ключа
  • Нажмите кнопку

И вы все настроены.

Вы можете заполнить больше вещей, если хотите, но теперь вы знаете, как туда добраться.

Ответ 3

Ниже SQL работает

SELECT
    tc.constraint_name, tc.table_name, kcu.column_name, 
    ccu.table_name AS foreign_table_name,
    ccu.column_name AS foreign_column_name 
FROM 
    information_schema.table_constraints AS tc 
    JOIN information_schema.key_column_usage AS kcu
      ON tc.constraint_name = kcu.constraint_name
    JOIN information_schema.constraint_column_usage AS ccu
      ON ccu.constraint_name = tc.constraint_name
WHERE constraint_type = 'PRIMARY KEY' AND tc.table_name='table_name';

Ответ 4

В Pgadmin3,

  • Перейдите в таблицу, которую вы хотите добавить PK или FK, и щелкните правой кнопкой мыши и выберите свойства.
  • Перейдите на вкладку ограничений.
  • Выберите в раскрывающемся списке "Первичный ключ" или "Внешний ключ", который находится рядом с кнопкой "Добавить" .
  • И нажмите кнопку "Добавить" .
  • Перейдите на вкладку столбцов.
  • Выберите имя столбца в выпадающем списке, который вы хотите добавить.
  • Нажмите кнопку "Добавить" .
  • Нажмите кнопку "ОК".

    Надеюсь, это поможет вам!