如何在1000张表上批量创建索引
How to batch create index on 1000 tables
我有一个父 table 在 postgres 9.3 db 中称为 ABC
和大约 1000 table 继承 ABC
ABC_1
ABC_2
...
ABC_1002
由于父项 table 的索引不会影响子项 table,因此我必须单独为它们创建索引。
是否有任何批处理方法可以自动在这些 table 上创建索引?
如果您的表确实如问题中所命名(我的意思是枚举“_1”、“_2”)等。那么这个简单的查询将为您生成一组 CREATE INDEX
。
SELECT
'CREATE INDEX ON ' || quote_ident('ABC_' || sub.num ) || ' (column_name);'
FROM
(SELECT num FROM generate_series(1,1000) num) sub;
但老实说,我希望您只提供简化的示例,所以请查看我关于使用 SQL
生成 DDL 命令的两个答案(, second answer) and this answer 以了解如何获取子关系列表来自系统表。
我有一个父 table 在 postgres 9.3 db 中称为 ABC
和大约 1000 table 继承 ABC
ABC_1
ABC_2
...
ABC_1002
由于父项 table 的索引不会影响子项 table,因此我必须单独为它们创建索引。
是否有任何批处理方法可以自动在这些 table 上创建索引?
如果您的表确实如问题中所命名(我的意思是枚举“_1”、“_2”)等。那么这个简单的查询将为您生成一组 CREATE INDEX
。
SELECT
'CREATE INDEX ON ' || quote_ident('ABC_' || sub.num ) || ' (column_name);'
FROM
(SELECT num FROM generate_series(1,1000) num) sub;
但老实说,我希望您只提供简化的示例,所以请查看我关于使用 SQL
生成 DDL 命令的两个答案(