У меня есть две таблицы: first_table
и other_table
.Я генерирую 3 строки случайных данных в столбце pr_key
в first_table
.first_table
и other_table
имеют отношение 1: M.
Для каждого pr_key
в other_table
мне нужно снова генерировать случайные числа в столбце second_code
, чтобы всего было 9 строк.
Проблема с моим подходом заключается в том, что случайные числа в столбце second_code
повторяются для каждого pr_key
, но они должны быть разными.
Кроме того, в other_table
есть ограничение, которое проверяет, что пары pr_key и second_code являются уникальными.
with oper as (
INSERT INTO first_table(
pr_key,
)
SELECT
pr_key,
FROM (
SELECT(
SELECT (random()*10)::int+(gen*0) as pr_key
),
gen as id
FROM generate_series(1,3) as gen
) main
RETURNING pr_key)
INSERT INTO other_table(pr_key, second_code)
SELECT pr_key, second_code
FROM oper, (
SELECT
(
SELECT 1+(random()*10)::int+(gen*0) as second_code
),
gen as id
FROM generate_series(1,3) as gen
) AS gener