我想知道有些人可以解释一下如何在pgAdmin中分配主键和外键吗?
我在网上找不到任何信息。
例如......我有一张学生表,上面有他们所有的详细信息(地址,d.o.b。等)。我要在表中添加一个student_number并将其作为主键。
我只想知道如何使用pgAdmin执行此操作?如果你可以善解释,请给我关于在postgreSQL(和pgAdmin)中使用主键的更多信息。与外键相同的情况。
答案 0 :(得分:104)
是的,有一种方法可以添加Primary& pgAdmin中的外键。
在pgAdmin III Ver.1.16.1(Windows 7)中测试
你们已经定下来了。
如果你愿意,你可以填写更多的东西,但现在你知道如何到达那里。
答案 1 :(得分:22)
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)。
答案 2 :(得分: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';
答案 3 :(得分:0)
在Pgadmin3中,
单击“确定”按钮。
希望它对你有所帮助!
答案 4 :(得分:0)
pgAdmin 4.29 不允许您在与表创建相同的对话框中创建外键。要创建外键,请先创建表,然后在资源管理器中展开表、列和外键节点。选择“创建”。