postgres批量新建索引
2014-03-07 00:00
411 查看
摘要: 通过存储过程动态批量创建索引
CREATE OR REPLACE FUNCTION create_love_index() RETURNS int AS $$ DECLARE count int; tbname text; lan text; types text[]; type text; codes text[]; code text; index_name text; BEGIN count := 0; lan := 'en'; types := array['cat', 'fish']; codes := array['0_9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; FOREACH type IN ARRAY types LOOP FOREACH code IN ARRAY codes LOOP tbname = 'love_' || lan || '_' || type || '_' || code; -- idx_love_en_cat_a_created index_name = 'idx_' || tbname || '_created'; IF NOT EXISTS(select indexname from pg_indexes WHERE schemaname = 'cat_l_fish' AND indexname = index_name) THEN RAISE NOTICE 'indexname: %.', index_name; EXECUTE 'CREATE INDEX ' || index_name || ' ON cat_l_fish.' || tbname || ' (created)'; count := count + 1; END IF; END LOOP; END LOOP; RETURN count; END; $$ LANGUAGE 'plpgsql' VOLATILE; -- SELECT create_love_index();
相关文章推荐
- lucene笔记-001-新建索引和读取索引
- sql 千万级数据表新建索引
- 数据库-1 给遗漏无索引的表新建索引
- MAC Elasticsearch 新建索引
- ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用
- 【转】如何新建索引:高开销的缺失索引
- SQL SERVER 2005 获取表的所有索引信息以及删除和新建语句
- 新建索引的一些原则
- SQL语句新建表,同时添加主键、索引、约束
- 删除unique key,删除原有的联合主键,新建新的联合逐渐,删除索引,修改索引,mysql5.7修改索引名称,查看最大连接数量,查看是否有ssl
- 新建索引的一些原则
- 如何新建普通索引,以及索引的作用
- ElasticSearch 新建索引
- 如何新建索引:高开销的缺失索引
- elasticsearch删除索引后再新建时踩的坑
- 如何新建索引:高开销的缺失索引
- oracle中新建表 添加备注 添加主键 创建索引
- 如何新建索引:高开销的缺失索引
- 如何新建索引:高开销的缺失索引
- mysql对重复数据新建唯一索引