如何在1000个表上批量创建索引

时间:2015-11-20 15:16:05

标签: postgresql postgresql-9.3

我在postgres 9.3 db

中有一个名为ABC的父表

并且大约1000个表继承ABC

width:100% height:auto;

因为父表上的索引不会影响子表,所以我必须分别在它们上创建索引。

是否有任何批处理方法可以自动在这些表上创建索引?

1 个答案:

答案 0 :(得分:3)

如果您的表名在问题中真正命名(我的意思是枚举“_1”,“_ 2”)等等。那么这个简单的查询将为您生成一组lenG = length(G) lenS = length(s1) + length(s2) + length(s3) + length(sn) empty_place_available = lenG - lenS current_position = 0; sort sn randomly loop for each sn rand = rand(0, empty_place_available) position[sn] = current_position + rand empty_place_available = empty_place_available - rand current_position = current_position + rand + length(sn)

CREATE INDEX

但老实说,我希望你只提供简化的例子,所以请检查我的两个答案,关于使用SELECT 'CREATE INDEX ON ' || quote_ident('ABC_' || sub.num ) || ' (column_name);' FROM (SELECT num FROM generate_series(1,1000) num) sub; 生成DDL命令(first answersecond answer)和{{3学习如何从系统表中获取子关系列表。