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