我有這樣的一個表:多次插入WITH/CTE
CREATE TABLE mytable
(
col1 character varying(50),
mydate timestamp without time zone
);
我希望將數據插入到這個表,也是我想最大的ID從我的源存儲:
insert into mytable (select myid, col1, mydate from sourcetable);
我在mytable中沒有myid列,後來我不能再問這樣的問題:select max(myid) from sourcetable
,因爲我得到一個快照,而sourcetable是一個事務表(每秒有數百個新記錄),所以我需要從該快照中獲取最大ID
我想是這樣的:
with query1 as (select myid, col1, mydate from sourcetable),
query2 as (select max(myid) id from query1)
insert into mytable (select co1, mydate from query1);
update anothertable set value=(select myid from query2) where col2='avalue';
但我得到這個錯誤:
ERROR: relation "query2" does not exist
LINE 1: update anothertable set value=(select myid from query2) wher...
有沒有辦法解決這個問題的方法嗎?
更改秒*帶*爲逗號:'與QUERY2如...' - >>',QUERY2如...' – joop
@joop查詢是沒有「與QUERY2作爲「首先。我的錯。我將編輯問題 –
'... 1,從query1開始計算);'在''後面''兩個CTE已經超出了範圍。 (他們只在當前聲明中有效) – joop