52

我想知道有人能给我解释一下如何在 pgAdmin 中分配主键和外键吗?

我在网上找不到任何信息。

例如...我有一个学生表,其中包含他们的所有详细信息(地址、出生日期等)。我将在表中添加一个 student_number 并使其成为主键。

我只想知道如何使用 pgAdmin 来做到这一点?如果您愿意解释,请给我有关在 postgreSQL(和 pgAdmin)中使用主键的更多信息。与外键相同的情况。

4

5 回答 5

109

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

在 pgAdmin III Ver.1.16.1 (Windows 7) 中测试

  1. 选择你想要的表
  2. Ctrl++AltEnter右键单击/属性
  3. 选择“约束”选项卡
  4. 在表单的左下方,您将看到“主键”选项
  5. 点击添加
  6. 选择“列”选项卡
  7. 选择您想要作为键的列
  8. 点击添加

你都准备好了。

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

于 2014-03-03T04:41:06.790 回答
25

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

主键列需要保存唯一的非空值。将列添加到现有表后,它会保存 NULL 值。因此,您必须先输入唯一值,然后才能添加UNIQUEPRIMARY KEY约束。

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

ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;

这适用于 PostgreSQL 9.1。我不确定它是否也适用于旧版本。

pgAdmin 目前没有为serial“新列...”对话框中的列合并这种特殊情况(版本 1.14)。

于 2012-03-16T08:47:16.950 回答
1

在 Pgadmin3 中,

  1. 转到要添加 PK 或 FK 的表,然后右键单击并选择属性。

  2. 转到约束选项卡。

  3. 在添加按钮旁边的下拉列表中选择主键或外键。

  4. 然后点击添加按钮。

  5. 转到列选项卡。

  6. 在下拉列表中选择要添加的列名。

  7. 单击添加按钮。

  8. 单击确定按钮。

    希望对您有所帮助!

于 2017-04-21T04:25:02.343 回答
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 回答