web-dev-qa-db-ja.com

pgAdminの主キーと外部キー

PgAdminでプライマリキーと外部キーを割り当てる方法について説明してくれる人がいるかと思いますか?

オンラインで情報が見つかりません。

たとえば...すべての詳細(住所、d.o.b。など)を含むStudentテーブルがあります。テーブルにstudent_numberを追加し、それを主キーにします。

PgAdminを使用してそれを行う方法を知りたいだけです。そして、もしあなたが説明してくれたら、postgreSQL(およびpgAdmin)での主キーの使用に関する詳細を教えてください。外部キーの場合も同じです。

49
Mr Teeth

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)。

22

はい、pgAdminに主キーと外部キーを追加する方法があります。

PgAdmin III Ver.1.16.1(Windows 7)でテスト済み

  1. 必要なテーブルを選択してください
  2. Ctrl+Alt+Enter または右クリック/プロパティ
  3. [制約]タブを選択します
  4. フォームの左下に「プライマリキー」オプションが表示されます
  5. 追加をクリックします
  6. 「列」タブを選択します
  7. キーとして使用する列を選択します
  8. 追加をクリックします

そして、あなたはすべて設定されています。

必要に応じてもっと多くのものを埋めることができますが、そこに到達する方法はわかりました。

105

Pgadmin3では、

  1. PKまたはFKを追加するテーブルに移動し、右クリックしてプロパティを選択します。
  2. [制約]タブに移動します。
  3. [追加]ボタンの横にあるドロップダウンリストで[プライマリキー]または[外部キー]を選択します。
  4. そして、追加ボタンをクリックするよりも。
  5. [列]タブに移動します。
  6. 追加するドロップダウンリストで列名を選択します。
  7. 追加ボタンをクリックします。
  8. Okボタンをクリックします。

    お役に立てば幸いです!

0
Yadana Chaw

以下の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
Thirumal