使用serial / auto increment列创建临时表

时间:2014-04-09 17:32:34

标签: sql postgresql

美好的一天 我正在尝试使用自动增量列创建临时表。我尝试了以下各种版本,但我没有让它工作。

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

1 个答案:

答案 0 :(得分: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)