2014-04-09 58 views
2

美好的一天 我試圖用自動增量列創建一個臨時表。我嘗試了以下各種版本,但我沒有得到它的工作。創建一個帶有串行/自動增量列的臨時表

create temp table aatemp1 as (id serial, (select unnest (string_to_array('388c45f-998d-4d9c-b59a-bd37b70bba7a', '-')))); 
+1

什麼不起作用?當你嘗試時會發生什麼?你有錯誤信息嗎?什麼是錯誤信息?不要讓我們猜測。 –

+0

對不起 - 正在開會。我得到一個語法錯誤錯誤:在「ID」或附近的語法錯誤 –

+0

我很確定'as'不應該在那裏。看到http://www.postgresql.org/docs/current/static/sql-createtable.html –

回答

4

您不能合併「靜態」列定義和類似的選擇。

你需要做這兩個步驟:

create temp table aatemp1 
(
    id serial, 
    some_value text 
); 

insert into aatemp1(some_value) 
select unnest (string_to_array('388c45f-998d-4d9c-b59a-bd37b70bba7a', '-')); 

,如果你只是想在臨時表中的序列號,你也可以做這樣的:

create temp table aatemp1 
as 
select row_number() over (order by null) as id, 
     t.* 
from (
    select unnest (string_to_array('388c45f-998d-4d9c-b59a-bd37b70bba7a', '-')) 
) t; 

(但是當插入更多行時,不會生成「新」ID)

+0

這樣做的訣竅 - 我沒有考慮兩個部分。非常感謝 –

相關問題