sql - 创建一个带有序列/自动增量列的临时表

标签 sql postgresql

美好的一天 我正在尝试创建一个带有自动增量列的临时表。我尝试了以下各种版本,但无法正常工作。

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

最佳答案

您不能将“静态”列定义和这样的选择结合起来。

您需要分两步完成此操作:

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;

(但当您插入更多行时不会生成"new"ID)

关于sql - 创建一个带有序列/自动增量列的临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22969880/

相关文章:

sql - 在 Postgres STRING_AGG 中对条件数据进行排序

sql - 返回 array_agg() 中的第一个元素

sql - 如何使用 DBIx :Class? 执行 WHERE ‘OR’ 和 “AND’

c# - 来自 C# 应用程序的加密

mysql - SQL根据多列删除同一个表中的重复行

sql - 如何从 1 个表中选择多行并插入到另一个表中特定行的特定 JSONB 字段中?但在单个原始 SQL 查询中

mysql - 如果我只知道用户名,如何使用 SQL 语句从网站获取数据?

mysql - 将 MySQL 简单查询转换为 SQL Server

postgresql - 包含间隔在 jooq 和 postgres 中无法按预期工作

perl - 使用 Perl 从数据库中获取一行