我在postgres 9.3 db
中有一个名为ABC的父表并且大约1000个表继承ABC
width:100% height:auto;
因为父表上的索引不会影响子表,所以我必须分别在它们上创建索引。
是否有任何批处理方法可以自动在这些表上创建索引?
答案 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 answer,second answer)和{{3学习如何从系统表中获取子关系列表。