如何在pg_attribute 表中查指定表的所有列
时间: 2024-05-10 11:21:43 浏览: 143
可以使用以下SQL查询来获取指定表的所有列:
```
SELECT attname FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'table_name') AND attnum > 0;
```
将上面的查询中的'table_name'替换为你要查询的表名即可。该查询会返回指定表的所有列的名称。
相关问题
kingbasees查询指定库的所有索引的sql
您可以使用以下 SQL 查询语句来获取指定库的所有索引信息:
```sql
SELECT
t.relname AS table_name,
c.relname AS index_name,
a.attname AS column_name
FROM
pg_class AS c
INNER JOIN pg_index AS i ON c.oid = i.indexrelid
INNER JOIN pg_class AS t ON i.indrelid = t.oid
INNER JOIN pg_attribute AS a ON a.attrelid = t.oid AND a.attnum = ANY(i.indkey)
WHERE
c.relkind = 'i'
AND t.relname = 'your_table_name'
AND t.relnamespace IN (
SELECT
oid
FROM
pg_namespace
WHERE
nspname NOT LIKE 'pg_%'
AND nspname != 'information_schema'
)
ORDER BY
t.relname,
c.relname;
```
请将 `your_table_name` 替换为您要查询的表的名称。这个查询语句将返回指定表的所有索引及其包含的列信息。
如何用sql在pg数据库找到arcgis中对应的别名
要在 PostgreSQL 中找到 ArcGIS 中的别名,可以使用以下查询语句:
```sql
SELECT a.attname AS column_name, d.description AS column_alias
FROM pg_attribute a
LEFT JOIN pg_class c ON a.attrelid = c.oid
LEFT JOIN pg_namespace n ON c.relnamespace = n.oid
LEFT JOIN pg_description d ON (a.attrelid, a.attnum) = (d.objoid, d.objsubid)
WHERE n.nspname = 'public' -- 替换为你要查找的 schema 名称
AND c.relname = 'your_table_name' -- 替换为你要查找别名的表的名称
AND a.attnum > 0
AND NOT a.attisdropped;
```
这将返回指定表中每个列的名称和 ArcGIS 别名。请将 "public" 和 "your_table_name" 替换为你要查找别名的 schema 和表的名称。注意,这种方法只适用于存储在 PostgreSQL 中的 ArcGIS 数据库。如果你使用的是其他类型的数据库,请查阅相应的文档。
阅读全文