2015-11-20 4 views
1

у меня есть родительская таблица под названием ABC в Postgres 9,3 дБКак партия создать индекс на 1000 таблиц

и около 1000 таблиц наследуют ABC

ABC_1 
ABC_2 
... 
ABC_1002 

, так как индекс родительской таблицы не влияет на ребенок таблицы , Я должен создавать индексы по ним отдельно.

Есть ли какой-либо пакетный способ автоматизации создания индексов на этих таблицах?

+0

Привет! У вас есть таблица в день/пользователь? – lad2025

+2

Должен быть полезен цикл с динамическим sql – Mihai

ответ

3

Если ваши таблицы действительно названы в вопросе (я имею в виду перечисление «_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 команд поколения (first answer, second answer) и this answer, чтобы узнать, как получить список дочерних отношений с системных таблиц.

Смежные вопросы