You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL及DBeaver中获取现有表的创建语句与关联关系

在DBeaver中获取PostgreSQL表创建语句及关联关系的有效方法

先明确你之前尝试方法的问题:

  • pg_dump是终端命令,无法直接在DBeaver的SQL编辑器中执行,且未指定数据库连接参数时无法生效
  • information_schema.tables不存在view_definition字段,该字段属于视图信息表information_schema.views,不适用于普通表
  • pg_tables系统视图没有definition字段,表的创建语句需要通过专门的系统函数获取
  • 第二个pg_dump命令未替换实际的schema名和数据库名,且同样是终端命令,不适用于DBeaver内操作
  • /+d metal_products是psql终端工具的命令,DBeaver不支持该语法

以下是DBeaver内的有效操作方式:

一、可视化界面操作(无需编写SQL)

1. 获取表创建语句

  • 在DBeaver左侧数据库导航树中找到metal_products表
  • 右键点击表名,选择**「生成SQL」→「创建」**
  • 弹出窗口会显示完整的CREATE TABLE语句,包含字段定义、主键、约束、索引等所有结构信息

2. 获取关联关系(外键)

  • 右键点击表名,选择**「属性」**
  • 切换到**「外键」**标签页:查看该表作为子表,引用其他表的外键关联信息(外键字段、父表、父表字段)
  • 切换到**「引用」**标签页:查看其他表作为子表,引用该表的外键关联信息
  • 也可直接展开表节点下的**「约束」→「外键」**,快速查看所有外键

二、SQL查询方式

1. 获取表创建语句

执行以下SQL,将your_schema替换为表实际所属的schema(默认是public):

-- 指定schema的情况
SELECT pg_get_create_table('your_schema.metal_products');

-- 若表在public schema,可简化为
SELECT pg_get_create_table('metal_products');

2. 获取外键关联关系

查询该表引用其他表的外键

SELECT
    tc.table_name AS 子表名称,
    kcu.column_name AS 外键字段,
    ccu.table_name AS 父表名称,
    ccu.column_name AS 父表引用字段
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 = 'FOREIGN KEY'
    AND tc.table_name = 'metal_products'
    AND tc.table_schema = 'your_schema'; -- 替换为实际schema

查询其他表引用该表的外键

SELECT
    tc.table_name AS 子表名称,
    kcu.column_name AS 外键字段,
    ccu.table_name AS 父表名称,
    ccu.column_name AS 父表引用字段
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 = 'FOREIGN KEY'
    AND ccu.table_name = 'metal_products'
    AND ccu.table_schema = 'your_schema'; -- 替换为实际schema

内容的提问来源于stack exchange,提问作者Arvind Chourasiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:13