52

pgAdminで主キーと外部キーを割り当てる方法について説明してもらえないでしょうか?

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

たとえば...私はすべての詳細(住所、生年月日など)を含むStudentテーブルを持っています。Student_number をテーブルに追加して、それを主キーにします。

pgAdminを使用してそれを行う方法を知りたいだけですか? また、親切に説明していただける場合は、postgreSQL (および pgAdmin) での主キーの使用に関する詳細情報を教えてください。外部キーの場合も同じです。

4

5 に答える 5

109

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

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

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

これで準備は完了です。

必要に応じてさらに多くのものを埋めることができますが、そこにたどり着く方法がわかりました。

于 2014-03-03T04:41:06.790 に答える
25

pgAdmin には、既存のテーブルに列を追加し、同時にそれを主キーにするオプションはありません。これはほとんど不可能だからです。

主キー列には、null 以外の一意の値を保持する必要があります。既存のテーブルに列を追加すると、NULL 値が保持されます。UNIQUEそのため、またはPRIMARY KEY制約を追加する前に、一意の値を入力する必要があります。

ただし、この規則には例外があります。列を追加するとserial、一意の値が自動的に挿入されます。この場合、PRIMARY KEY をすぐに定義することもできます。

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;

これは PostgreSQL 9.1 で機能します。古いバージョンでもそうかどうかはわかりません。

serialpgAdmin は、現時点 (バージョン 1.14) の [新しい列...] ダイアログの列にこの特殊なケースを組み込みません。

于 2012-03-16T08:47:16.950 に答える
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';
于 2016-10-19T04:45:26.207 に答える
0

pgAdmin 4.29 では、テーブル作成と同じダイアログで外部キーを作成できません。外部キーを作成するには、最初にテーブルを作成してから、エクスプローラーでテーブル、列、および外部キー ノードを展開します。「作成」を選択。

于 2021-01-21T21:49:57.227 に答える