Postgresql загрузка json с вложенным массивом в 2 таблицы
Есть 2 таблицы в Postgresql
CREATE TABLE flats(
id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
flat_no VARCHAR(10) NOT NULL,
flat_square NUMERIC(8,2));
CREATE TABLE owners(
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
flat_id INTEGER NOT NULL REFERENCES flats ON DELETE CASCADE ON UPDATE CASCADE,
last_name VARCHAR(100) NOT NULL,
first_name VARCHAR(100) NOT NULL,
second_name VARCHAR(100));
и json
{"flats": [
{"flat_no": 1,
"flat_square": 23.4,
"owners": [
{"last_name": "Иванов", "first_name": "Иван", "second_name": "Иванович"},
{"last_name": "Иванова", "first_name": "Ирина", "second_name": "Ильинична"}
]
},
{"flat_no": 2,
"flat_square": 48.0,
"owners": [
{"last_name": "Петров", "first_name": "Петр", "second_name": "Петрович"}
]
}
]
}
Нужно массив flats вставить в таблицу flats и на основании полученных id вставить данные в таблицу owners
Во flats вставляю через WITH inserted_rows as (INSERT INTO flats SELECT * FROM jsonb_populate_recordset(NULL::flats, ...) RETURNING *), а вот как вытащить flat_no у каждого человека и по нему получить id из inserted_rows для вставки в owners что-то никак не пойму.