我想知道有人能给我解释一下如何在 pgAdmin 中分配主键和外键吗?
我在网上找不到任何信息。
例如...我有一个学生表,其中包含他们的所有详细信息(地址、出生日期等)。我将在表中添加一个 student_number 并使其成为主键。
我只想知道如何使用 pgAdmin 来做到这一点?如果您愿意解释,请给我有关在 postgreSQL(和 pgAdmin)中使用主键的更多信息。与外键相同的情况。
我想知道有人能给我解释一下如何在 pgAdmin 中分配主键和外键吗?
我在网上找不到任何信息。
例如...我有一个学生表,其中包含他们的所有详细信息(地址、出生日期等)。我将在表中添加一个 student_number 并使其成为主键。
我只想知道如何使用 pgAdmin 来做到这一点?如果您愿意解释,请给我有关在 postgreSQL(和 pgAdmin)中使用主键的更多信息。与外键相同的情况。
是的,有一种方法可以在 pgAdmin 中添加主键和外键。
在 pgAdmin III Ver.1.16.1 (Windows 7) 中测试
你都准备好了。
如果你愿意,你可以填充更多的东西,但现在你知道如何到达那里了。
pgAdmin 中没有选项可以将列添加到现有表并同时使其成为主键,因为这几乎是不可能的。
主键列需要保存唯一的非空值。将列添加到现有表后,它会保存 NULL 值。因此,您必须先输入唯一值,然后才能添加UNIQUE
或PRIMARY KEY
约束。
但是,该规则有一个例外:如果添加serial
列,则会自动插入唯一值。在这种情况下,您也可以立即定义它的 PRIMARY KEY:
ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;
这适用于 PostgreSQL 9.1。我不确定它是否也适用于旧版本。
pgAdmin 目前没有为serial
“新列...”对话框中的列合并这种特殊情况(版本 1.14)。
在 Pgadmin3 中,
转到要添加 PK 或 FK 的表,然后右键单击并选择属性。
转到约束选项卡。
在添加按钮旁边的下拉列表中选择主键或外键。
然后点击添加按钮。
转到列选项卡。
在下拉列表中选择要添加的列名。
单击添加按钮。
单击确定按钮。
希望对您有所帮助!
下面的 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';
pgAdmin 4.29 不允许您在与创建表相同的对话框中创建外键。要创建外键,首先创建表,然后在资源管理器中展开表、列和外键节点。选择“创建”。