Первичные и внешние ключи в 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)
- выберите таблицу, которую вы хотите
- Ctrl+Alt+Enter или щелкните правой кнопкой мыши / Свойства
- выберите вкладку "ограничения"
- в левой нижней части формы, вы увидите опцию "первичного ключа"
- Нажмите кнопку Добавить
- Выберите "Столбцы" tab
- выберите столбец, который вы хотите в качестве ключа
- Нажмите кнопку Добавить
и все готово.
вы можете заполнить больше вещей, если вы хотите, но теперь вы знаете, как туда добраться.
ниже 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,
- перейти к таблице, которую вы хотите добавить PK или FK и щелкните правой кнопкой мыши и выбрать Свойства.
- перейдите на вкладку ограничения.
- выберите первичный ключ или внешний ключ в раскрывающемся списке, который рядом с кнопкой Добавить.
- и нажмите на кнопку Добавить.
- перейдите на вкладку столбцы.
- выберите имя столбца в раскрывающемся списке, который вы хотите добавить .
- нажать кнопку "Добавить".
-
клик Кнопка Ok.
надеюсь, что это будет полезно для вас !