#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
Комментариев нет:
Отправить комментарий