Postgresql 小学及中学;pgAdmin中的外键
我想知道一些人能给我解释一下如何在pgAdmin中分配主键和外键吗 我在网上找不到任何信息 例如,我有一张学生表,上面有他们的所有详细信息(地址、d.o.b.等)。我将向表中添加一个student_编号,并将其作为主键Postgresql 小学及中学;pgAdmin中的外键,postgresql,foreign-keys,primary-key,pgadmin,Postgresql,Foreign Keys,Primary Key,Pgadmin,我想知道一些人能给我解释一下如何在pgAdmin中分配主键和外键吗 我在网上找不到任何信息 例如,我有一张学生表,上面有他们的所有详细信息(地址、d.o.b.等)。我将向表中添加一个student_编号,并将其作为主键 我只是想知道如何使用pgAdmin实现这一点?如果您愿意解释的话,请给我更多关于在postgreSQL(和pgAdmin)中使用主键的信息。外键的情况也一样。在pgAdmin中没有向现有表中添加列并同时使其成为主键的选项,因为这几乎是不可能的 主键列需要保存唯一的非空值。在向现有
我只是想知道如何使用pgAdmin实现这一点?如果您愿意解释的话,请给我更多关于在postgreSQL(和pgAdmin)中使用主键的信息。外键的情况也一样。在pgAdmin中没有向现有表中添加列并同时使其成为主键的选项,因为这几乎是不可能的 主键列需要保存唯一的非空值。在向现有表中添加列时,它会保存空值。因此,在添加
唯一
或主键
约束之前,必须输入唯一值
但是,该规则有一个例外:如果添加列,将自动插入唯一值。在这种情况下,您还可以立即定义它的主键:
ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;
这在PostgreSQL 9.1中起作用。我不确定它在旧版本中是否也适用
pgAdmin目前(版本1.14)在“新建列…”对话框中没有为
串行列合并此特殊情况。是的,有一种方法可以在pgAdmin中添加主键和外键
在pgAdmin III 1.16.1版(Windows 7)中测试
选择所需的表
Ctrl+Alt+Enter或右键单击/Properties
选择“约束”选项卡
在表单的左下侧,您将看到选项“主键”
单击添加
选择“列”选项卡
选择要作为键的列
单击添加
你们都准备好了
如果您愿意,您可以填充更多内容,但现在您知道如何到达那里。下面的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中
转到要添加PK或FK的表,右键单击并选择属性
转到“约束”选项卡
在“添加”按钮旁边的下拉列表中选择主键或外键
然后单击添加按钮
转到“列”选项卡
在下拉列表中选择要添加的列名
单击添加按钮
点击Ok按钮
希望对你有帮助
pgAdmin 4.29不允许您在创建表的同一对话框中创建外键。要创建外键,请先创建表,然后在资源管理器中展开表、列和外键节点。选择“创建”。这是向表本身添加键,还是仅仅在PGadmin中添加键?如果是Previor,你的应用程序中不会出现问题吗?这种方法添加了一个约束,而不是一列,那么它安全吗?有没有办法添加一个“常规索引”用于优化目的(而不是约束/逻辑目的)-用于更快的搜索?我似乎在pgadmin3中找不到它(约束只有约束类型)。这很有效,可能应该是公认的答案?(问题是如何在pgAdmin中实现这一点,而公认的答案并不能解释这一点。)参见Victor Barrantes的答案,n看来theeth先生发现了pgAdmin,因此他很少有机会落入您在这里描述的场景,尽管您的答案非常有争议。