gpt4 book ai didi

postgresql - 当不同模式中有多个同名表时检查列是否存在(PSQL 8.2)

转载 作者:行者123 更新时间:2023-11-29 11:55:52 26 4
gpt4 key购买 nike

为了检查列是否存在,我可以轻松使用与此类似的内容:

SELECT attname FROM pg_attribute 
WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'YOURTABLENAME')
AND attname = 'YOURCOLUMNNAME';

但是,我遇到了问题

SELECT oid FROM pg_class WHERE relname = 'YOURTABLENAME'

当多个具有相同名称的表分布在不同的架构中时,它会返回具有该名称的所有表的 OID。如何检查特定模式中的表是否包含我要查找的列?我正在使用 Postgres 8.2。

最佳答案

8.2支持information_schema views 。沿着这些思路的东西应该有效。当然,您必须提供自己的数据库、架构、表和列名称。

select * 
from information_schema.columns
where table_catalog = 'sandbox'
and table_schema = 'public'
and table_name = 'calendar'
and column_name = 'iso_year';

关于postgresql - 当不同模式中有多个同名表时检查列是否存在(PSQL 8.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com