我正在实施一种请求机制,用户必须批准请求。为此,我实现了一个临时表和主表。最初,当请求被添加时,数据将被插入到临时表中,经批准后将被复制到主表中。
问题是批准后将有超过 5k 行移动到主表 + 明细表中的每行另外 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