【问题标题】:How to view table relation in PostgreSQL Server?如何在 PostgreSQL 服务器中查看表关系?
【发布时间】:2017-01-23 10:44:14
【问题描述】:

如何在PostgreSQL服务器中查看表关系? 两年多以前,我曾多次尝试在 PostgreSQL 服务器中查找表关系,但无法获得任何帮助。 那么有什么方法可以在 SQL Server 或 Access 中找到相同的表关系?或者是否可以在PostgreSQL服务器中查看表关系?

【问题讨论】:

  • 删除了不合适的标签
  • @scaisEdge,如何删除它?执行我,你能告诉我更深一点吗?请帮助...先生。非常感谢,
  • 我已经完成了..我的评论仅供参考

标签: java vb.net postgresql


【解决方案1】:

如果要列出从表开始的所有关系,则必须搜索外键。 在 Postgresql 中是搜索约束的意思。

在另一个问题中解决了: SQL to list table foreign keys

来自答案:

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 = 'FOREIGN KEY' AND tc.table_name='mytable';

【讨论】:

  • 非常感谢您的信息,我可以问一下吗?根据这一行“tc.table_name='mytable';” ,那么'mytable'是我们需要找到外键的主表吗?所以例如:如果我的主表是 M_CUSTOMER,那么我应该把它放在那里吗?非常感谢,
  • 如果有父子关系,必须把子表名:postgres插入子时检查父记录是否存在。例如文档和行:必须使用“行”表,postgresql检查文档中是否存在row.doc_id,否则抛出异常(你试图插入一个doc_id = 3的记录但没有id = 3的记录是在文档表中找到)
【解决方案2】:

您可以尝试使用像 DataGrip 或 pgAdmin 这样的 UI。我在我的 Postgres 应用程序上使用 DataGrip。您可以简单地尝试使用 postgres 交互式 shell -- psql。

祝你好运

【讨论】:

  • 非常感谢您的建议。我会尝试然后让你知道,希望它可能会修复。谢谢先生。
猜你喜欢
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
相关资源
最近更新 更多