2012-03-15 2 views
47

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

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

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

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

+0

Любая помощь будет замечательной. :) –

ответ

20

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

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

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

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY; 

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

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

+0

Спасибо за информацию Erwin. –

+1

см. Ответ Виктора Баррантеса: «Кажется, мистер тэт обнаружил пгадмин, поэтому есть мало шансов, что он попадет в сценарий, который вы описываете здесь, несмотря на то, что ваш ответ очень интерсексуален. –

95

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

Испытано в pgAdmin III Ver.1.16.1 (Windows 7)

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

И все готово.

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

+0

Это добавляет ключ к самой таблице или просто в PGadmin? Если это так, не будет ли в вашем приложении что-то ломаться? Этот метод добавляет ограничение, а не столбец, так что это безопасно? – ahnbizcad

+3

Перечитайте 6. и 7. (Столбцы уже существуют в таблице) –

+0

это хорошо работает – docesam

0

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

В pgadmin3,

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

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

Смежные вопросы