Я реализую механизм запроса, когда пользователь должен одобрить запрос. Для этого я внедрил временную таблицу и основную таблицу. Первоначально, когда запрос добавляется, данные будут вставлены во временную таблицу, после утверждения они будут скопированы в основную таблицу.Проблема при копировании строк из одной таблицы в другую
Проблема заключается в том, что после утверждения еще 5 тысяч строк будут перенесены в основную таблицу + еще 3-5 строк для каждой строки в таблице подробностей (хранит данные). Моя текущая реализация как этот
//Get the rows from temporary table (batch_temp)
//Loop through the data
//Insert the data to the main table (batch_main) and return the id
//Get the details row from the temporary detail table (batch_temp_detail) using detail_tempid
//Loop through the data
//Insert the details to the detail table (batch_main_detail) with the main table id amount_id
//End Loop
//End Loop
Но эта реализация будет принимать по крайней мере 20k запросов. Есть ли какие-то лучшие способы реализовать то же самое.
Я попытался создать sqlfiddle, но не смог его создать. Поэтому я вставил запрос в pgsql.privatepaste.com
Вы пробовали выбрать? – Robert
Я не пробовал 'SELECT INTO', но я прочитал документы. Из этого я понял, что «SELECT INTO» вернет пустоту. Но мне нужно amount_id из batch_main, чтобы вставить соответствующие данные в batch_main_detail. –
У вас есть поле, которое позволяет вам маркировать отношение записей из временной таблицы и основной таблицы? Если у вас есть, я думаю, вы можете выполнить свою задачу с помощью двух запросов, покажите мне свои структуры таблиц. – Tarzan