Первичные и иностранные ключи в pgAdmin - PullRequest
49 голосов
/ 15 марта 2012

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

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

Например ... У меня есть таблица учеников со всеми их деталями (адрес, размер и т. Д.). Я собираюсь добавить номер студента в таблицу и сделать его первичным ключом.

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

Ответы [ 4 ]

105 голосов
/ 03 марта 2014

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

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

  1. Выберите желаемую таблицу
  2. Ctrl + Alt + Введите или щелкните правой кнопкой мыши / Свойства
  3. Выберите вкладку «Ограничения»
  4. В левой нижней части формы вы увидите опцию «Первичный ключ»
  5. Нажмите добавить
  6. Выберите вкладку «Столбцы»
  7. Выберите нужную колонку в качестве ключа
  8. Нажмите добавить

И все готово.

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

22 голосов
/ 16 марта 2012

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

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

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

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;

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

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

0 голосов
/ 21 апреля 2017

In Pgadmin3,

  1. Перейдите к таблице, в которую вы хотите добавить PK или FK, щелкните правой кнопкой мыши и выберите свойства.
  2. Перейти на вкладку ограничений.
  3. Выберите Первичный или Внешний ключ в раскрывающемся списке рядом с кнопкой Добавить.
  4. А потом нажмите на кнопку добавления.
  5. Перейти на вкладку столбцов.
  6. Выберите имя столбца в выпадающем списке, который вы хотите добавить.
  7. Нажмите кнопку Добавить.
  8. Нажмите кнопку ОК.

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

0 голосов
/ 19 октября 2016

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';
...