Postgresql 如何检测postgres中创建或跳过的表

Postgresql 如何检测postgres中创建或跳过的表,postgresql,postgresql-9.4,Postgresql,Postgresql 9.4,我用python在Postgres中创建了一个表和索引。我希望在创建表时跳过创建索引。 如何检测Postgres中创建或跳过的表 CREATE TABLE IF NOT EXISTS table_one () INHERITS (table) 如果未跳过创建表 CREATE INDEX ON table_one USING btree (id, time_stamp) 使用匿名块怎么样 DO $$ BEGIN CREATE TABLE table_one () INHERITS (t

我用python在Postgres中创建了一个表和索引。我希望在创建表时跳过创建索引。 如何检测Postgres中创建或跳过的表

CREATE TABLE IF NOT EXISTS table_one () INHERITS (table)
如果未跳过创建表

CREATE INDEX ON table_one USING btree (id, time_stamp)

使用匿名块怎么样

DO $$
BEGIN
    CREATE TABLE table_one () INHERITS (table);
    CREATE INDEX ON table_one USING btree (id, time_stamp);
EXCEPTION   
    WHEN duplicate_table THEN
        RAISE NOTICE 'Table already exists, ignoring...';
END$$;

创建索引…
的末尾添加
如果不存在表_one
,并将其上移到创建表调用之前如何?是否可以在创建表之前创建索引?!在什么上创建索引?@jam3:当前版本的Postgres中没有
创建索引(如果不存在的话)
。不过,即将发布的9.5版本将有此功能。另一种方法是在
createindex
命令中添加索引名称。(使用默认名称)如果对象已存在,则会导致对象存在错误。