Je me demandais si certains pouvaient m'expliquer comment attribuer des clés primaires et étrangères dans pgAdmin?
Je ne trouve aucune information en ligne.
Par exemple ... J'ai une table d'étudiant avec tous leurs détails (adresse, adresse électronique, etc.). Je vais ajouter un numéro étudiant à la table et en faire une clé primaire.
Je veux juste savoir comment je fais ça en utilisant pgAdmin? Et si vous voulez bien expliquer, donnez-moi plus d'informations sur l'utilisation de clés primaires dans postgreSQL (et pgAdmin). Le même cas avec les clés étrangères.
Dans pgAdmin, il n'y a pas d'option pour ajouter une colonne à une table existante et en faire la clé primaire en même temps, car cela est difficilement possible.
Une colonne de clé primaire doit contenir des valeurs uniques non nulles. Lors de l'ajout d'une colonne à une table existante, celle-ci contient des valeurs NULL. Vous devez donc entrer des valeurs uniques avant de pouvoir ajouter une contrainte UNIQUE
ou PRIMARY KEY
.
Il existe un exception à cette règle, cependant: Si vous ajoutez une colonne serial
, des valeurs uniques sont insérées automatiquement. Dans ce cas, vous pouvez également définir immédiatement PRIMARY KEY:
ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;
Cela fonctionne dans PostgreSQL 9.1. Je ne suis pas sûr que ce soit le cas dans les anciennes versions.
pgAdmin n'intègre pas actuellement ce cas particulier pour les colonnes serial
dans le dialogue "Nouvelle colonne ..." (version 1.14).
Да, есть способ добавить первичные и внешние ключи в pgAdmin.
À propos de pgAdmin III Ver.1.16.1 (Windows 7)
И все готово.
Вы можете заполнить больше вещей, если хотите, но теперь вы знаете, как туда добраться.
Dans Pgadmin3,
Cliquez sur le bouton Ok.
J'espère que cela vous aidera!
Le SQL ci-dessous fonctionnera
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';