Страницы

Поиск по вопросам

понедельник, 2 марта 2020 г.

Как сгенерировать тысячу / миллион / миллиард записей в таблице?

#sql #postgresql


Для оценки производительности моего приложения нужно наполнить БД большим количеством
тестовых данных. Встала задача заполнить имеющуюся таблицу автоматически сгенерированными
данными. Думал сделать это с помощью одного или нескольких SQL-запросов. Однако столкнулся
с затруднением с циклами — кажется, они не дают возможности генерирования произвольных
последовательностей. Может быть, есть вариант построить временную таблицу с бесконечным
количеством строк, вызывав какую-нибудь встроенную функцию?

К примеру, можно вопрос конкретизировать: как автоматически заполнить таблицу нижеследующими
данными?

|col1|col2|col3|col4|
|----|----|----|----|
|   0|   1|   0|    |
|   1|   2|   1|    |
|   2|   3|   0|    |
|   4|   4|   1|    |
|   8|   5|   0|    |
|  16|   6|   1|    |
    .   .   .   .
| 2^N| N+1| N%2|  * |


* любая формула по-вашему усмотрению
    


Ответы

Ответ 1



Пока составлял вопрос — нашёл решение :) INSERT INTO t(col1, col2, col3) SELECT 2 ^ k, k + 1, k % 2 FROM generate_series(0, N) AS k https://postgrespro.ru/docs/postgrespro/10/functions-srf

Комментариев нет:

Отправить комментарий