PgAdminでプライマリキーと外部キーを割り当てる方法について説明してくれる人がいるかと思いますか?
オンラインで情報が見つかりません。
たとえば...すべての詳細(住所、d.o.b。など)を含むStudentテーブルがあります。テーブルにstudent_numberを追加し、それを主キーにします。
PgAdminを使用してそれを行う方法を知りたいだけです。そして、もしあなたが説明してくれたら、postgreSQL(およびpgAdmin)での主キーの使用に関する詳細を教えてください。外部キーの場合も同じです。
PgAdminには、既存のテーブルに列を追加し、同時にそれを主キーにするオプションはほとんどありません。これはほとんど不可能です。
主キー列には、一意の非NULL値を保持する必要があります。既存のテーブルに列を追加すると、NULL値が保持されます。したがって、UNIQUE
またはPRIMARY KEY
制約を追加する前に、一意の値を入力する必要があります。
ただし、そのルールにはexceptionがあります: serial
を追加した場合 列、一意の値が自動的に挿入されます。この場合、PRIMARY KEYをすぐに定義することもできます。
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)でテスト済み
そして、あなたはすべて設定されています。
必要に応じてもっと多くのものを埋めることができますが、そこに到達する方法はわかりました。
Pgadmin3では、
Okボタンをクリックします。
お役に立てば幸いです!
以下の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';