Postgres БД с 1000 схемами и по 100 таблиц в каждой схеме

Как создать цикл на Postgres в котором будет создаваться 1000 схем и по 100 таблиц в каждой схеме? Никак не могу найти решение, помогите! В конце должно получится schema0, schema1, ... и в каждой схеме table0, table1, table2, ...


Ответы (1 шт):

Автор решения: Ainar-G

Самый прямой вариант:

DO
$$
BEGIN
  FOR i IN 1 .. 1000 LOOP
    EXECUTE 'CREATE SCHEMA schema_' || i;
    FOR j IN 1 .. 100 LOOP
      EXECUTE 'CREATE TABLE schema_' || i || '.table_' || j || ' (id INTEGER PRIMARY KEY)';
    END LOOP;
  END LOOP;
END;
$$
;

Будьте готовы к тому, что выполняться будет долго и что придётся подкручивать параметры, ибо делается тут всё в одной транзакции. Дальше — параллелизация через Shell и т. д.

→ Ссылка