pgsql查询表主键
时间: 2024-09-24 12:24:27 浏览: 151
在PostgreSQL(简称PGSQL)中,如果你想查询表的主键信息,你可以使用系统信息表`pg_index`或`information_schema.key_column_usage`。这里提供两种方法:
1. 使用 `pg_index`:
```sql
SELECT conname AS constraint_name, attname AS column_name,
indisprimary AS is_primary_key
FROM pg_index
WHERE tablename = 'your_table_name';
```
将 `'your_table_name'` 替换为你实际的表名。
2. 使用 `information_schema.key_column_usage`:
```sql
SELECT kc.constraint_name AS constraint_name, kc.column_name AS column_name,
CASE WHEN ku.table_schema = 'public' THEN true ELSE false END AS is_public
FROM information_schema.key_column_usage AS kc
JOIN information_schema.tables AS t ON kc.table_name = t.table_name AND ku.table_schema = t.table_schema
WHERE t.table_name = 'your_table_name' AND kc.constraint_type = 'PRIMARY KEY';
```
这里同样替换 `'your_table_name'` 为你要查询的表名。
这两种查询都会返回表名、列名以及该列是否为主键的信息。如果你需要获取所有表的主键信息,可以遍历结果或者结合其他条件筛选。
阅读全文