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

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

Я не могу найти никакой информации в интернете.

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

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

4 ответов


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

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

есть исключение к этому правилу, однако: если вы добавите serial уникальные значения вставляются автоматически. В этом случае вы также можете сразу определить первичный ключ:

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;

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

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


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

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

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

и все готово.

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


ниже 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';

В Pgadmin3,

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

    надеюсь, что это будет полезно для вас !