我有一个数据库,用 C++ 代码连接到它,然后执行 SQL 查询:
SELECT DISTINCT TRIM(cl.relname) AS table_name,
TRIM(a.attname) AS column_name,
a.atttypid AS colunm_type,
co.confrelid AS foreign_key
FROM pg_class cl, pg_attribute a, pg_constraint co
WHERE cl.oid = a.attrelid
AND co.conrelid = cl.oid
ORDER BY table_name, column_name
查询的本质是有一个数据库,它有表,我把表的所有列名都取下来显示出来,还显示列的类型和这个列是否有FOREIGN KEY,但是对于一些原因而不是显示我有 4 个字段(2 次 House 1 owner 1 nope),它输出
问题是什么,并帮助提供更正确的请求版本。如果您有其他实现想法,请提出建议:)
我在 PostgreSQL Manager 工作
答案找到了,事实是PostgreSQL中列的序号是有编号的。普通列按升序编号,从 1 开始。像 oid 这样的系统列(通常)有负数。事实证明,除了我的专栏之外,我还收到了一堆其他的系统专栏。
通过在行尾添加此编辑
问题自行解决