在pgAdmin中的主键和外键

我想知道可以给我一个解释如何在pgAdmin中分配主键和外键吗?

我无法在网上find任何信息。

例如…我有一个学生表及其所有细节(地址,dob等)。 我将添加一个student_number到表中,并将其作为主键。

我只是想知道如何使用pgAdmin? 如果你可能有点解释给我更多关于在PostgreSQL中使用主键(和pgAdmin)的信息。 与外键相同的情况。

在pgAdmin中没有选项可以将列添加到现有的表中,并使其成为主键,因为这几乎是不可能的。

主键列需要保存唯一的非空值。 在将列添加到现有表时,它将保存NULL值。 所以你必须input唯一的值,然后才能添加UNIQUEPRIMARY KEY约束。

但是,该规则有一个例外 :如果添加一个serial列,则会自动插入唯一值。 在这种情况下,你也可以直接定义它的PRIMARY KEY:

 ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY; 

这在PostgreSQL 9.1中起作用。 我不确定它在旧版本中也是如此。

此时pgAdmin没有在“New column …”对话框中包含serial列的特殊情况(版本1.14)。

是的,有一种方法可以在pgAdmin中添加主键和外键。

在pgAdmin III Ver.1.16.1(Windows 7)中testing

  1. select你想要的表格
  2. 按Ctrl + Alt + Enter或右键单击/属性
  3. select“约束”选项卡
  4. 在窗体的左下angular,您将看到选项“主键”
  5. 点击添加
  6. select“列”选项卡
  7. select你想要的列作为关键
  8. 点击添加

而且你们都定了。

如果你愿意,你可以填写更多的东西,但现在你知道如何到达那里。

下面的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中,

  1. 转到要添加PK或FK的表格,然后右键单击并select属性。
  2. 转到约束选项卡。
  3. 在“添加”button旁边的下拉列表中select主键或外键。
  4. 而不是点击添加button。
  5. 转到栏标签。
  6. 在下拉列表中select要添加的列名称。
  7. 点击添加button。
  8. 点击确定button。

    希望它对你有帮助!