有谁知道如何在Postgres 9.1中找到表的OID?我正在编写一个更新脚本,需要在尝试创建列之前测试表中是否存在列.这是为了防止脚本在第一次出错后运行.
Postgresql允许向表等对象添加注释.例如,我使用此SQL命令向表"mytable"添加了注释:
COMMENT ON TABLE mytable IS 'This is my table.';
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我想使用SQL命令获取所有表及其各自的注释 - 我将如何做到这一点?什么是适当的查询?
提前致谢!干杯!
假设我在Postgresql中创建了一个表,并对列进行了注释:
create table t1 (
c1 varchar(10)
);
comment on column t1.c1 is 'foo';
Run Code Online (Sandbox Code Playgroud)
一段时间后,我决定添加另一列:
alter table t1 add column c2 varchar(20);
Run Code Online (Sandbox Code Playgroud)
我想查找第一列的注释内容,并与新列关联:
select comment_text from (what?) where table_name = 't1' and column_name = 'c1'
Run Code Online (Sandbox Code Playgroud)
(什么?)将成为一个系统表,但在浏览了pgAdmin并在网上搜索后我还没有学到它的名字.
理想情况下,我希望能够:
comment on column t1.c1 is (select ...);
Run Code Online (Sandbox Code Playgroud)
但我有一种感觉,那就是伸展的东西.谢谢你的任何想法.
更新:基于我在这里收到的建议,我最终编写了一个程序来自动完成传输注释的任务,这是更改Postgresql列数据类型的更大过程的一部分.您可以在我的博客上阅读相关内容.