在PgAdmin中添加外键

24

我有以下的studidtemplates表:

enter image description here

template_id 是主键

enter image description here

我想创建一个新表,引用template_id作为外键。它的名称是studidtemplatetextelements。请参见下面的图片:

enter image description here

我在第二个表中创建了一个名为template_id的列,并希望将其作为外键引用studidtemplates表中的template_id。我通过单击下面图像中箭头所指向的Constraints选项卡中的按钮来完成此操作。

enter image description here

我注意到了一些不同之处。在“引用”选项中,没有可用的template_id选项。请参见下面的图片:

enter image description here

我哪里出错了?

3个回答

56
在pgAdmin 4中,以下是步骤:
  1. 右键单击表格并选择属性
  2. 在弹出的对话框中,点击约束 / 外键
  3. 点击外键表右上角的+图标。
  4. 单击新行最左边的铅笔图标
  5. 常规选项卡下,给您的外键命名(我按照这个约定命名为{tablename}_{columnname}_fkey)。
  6. 选项卡下,选择引用。
  7. 在“本地列”右侧单击+图标。
  8. 在底部单击保存按钮。

这是一个截图:

pgAdmin 4 foreign key dialog


5
冠军。甚至没有看到那个铅笔图标。 - bernieslearnings
1
本地列:您当前表中的外键列(user_id_fkey),引用:具有您的外键引用的主键的表(users),引用:该表中实际引用外键的列(id) - Prid

3

Referencing下列出的列是属于所选表格的列。

您需要按照以下方式更改References中的所选表格: enter image description here

您使用的是哪个版本的pgAdmin?在版本1.16中,"References"文本框已移动到“Columns”选项卡中:

在外键属性对话框中,“References”表文本框已移动到第三个选项卡


谢谢,但我没有“引用”下拉选项。我该怎么办? - user4621642
我使用的是1.14.2版本,‘References’下拉菜单在哪里可以找到? - user4621642
我在“定义”选项卡中找到了参考资料。感谢您给了我一个想法。+1 给你。 - user4621642

0

对我来说,更方便的是查询工具(用于特定数据库的工作)。

通过单击图标或按下Alt+Shift+Q来访问查询工具。

enter image description here

在我的情况下,我想要在products(通过添加一个名为added_by的字段)和users(具体来说是id)之间建立关系,因此我使用了{{link1:ALTER TABLE}}以下脚本:

ALTER TABLE public.products ADD COLUMN added_by integer;
ALTER TABLE public.products ADD CONSTRAINT products_added_by_fkey FOREIGN KEY (added_by) REFERENCES public.users (id);

现在可以看到字段added_by和约束products_added_by_fkey

enter image description here

如果一个人检查约束的属性,可以在“列”选项卡中看到以下内容。

enter image description here


  • 如果问题仅仅是添加外键约束,假设字段已经存在,请查看上一个脚本的最后一行,或者参考PostgreSQL文档中给出的以下示例:

    ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses (address);
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接