postgresql 检查哪些表使用oids
时间: 2024-11-16 10:20:11 浏览: 8
postgresql
在 PostgreSQL 中,oid(Object Identifier)是一种用于唯一标识数据库对象的数据类型,比如表格、列、索引等。如果你想要检查哪些表使用了 oid,可以执行以下 SQL 查询:
```sql
SELECT table_name, column_name
FROM information_schema.columns
WHERE column_default LIKE '%oid%' OR udt_name = 'oid'
OR (table_name, column_name) IN (
SELECT table_name, column_name
FROM pg_index
JOIN pg_class ON pg_index.indrelid = pg_class.oid
WHERE indisunique = false AND indisprimary = false
AND connamespace = pg_class.relnamespace
);
```
这个查询会从 `information_schema.columns` 表获取有 oid 字段信息的列,同时也会通过 `pg_index` 和 `pg_class` 表查找那些包含 oid 的索引。请注意,实际结果可能会因表设计和版本差异而有所不同。
如果你想查看哪些表直接使用了 oid 作为主键或其他类型的键,可以去掉 `pg_index` 部分的查询。
阅读全文