【问题标题】:PostgreSql: Script for create table with 1000 of columnsPostgreSql:用于创建包含 1000 列的表的脚本
【发布时间】:2018-05-04 01:50:40
【问题描述】:

我需要创建包含 1000 列和 1M 行的随机数据表。

我知道在表格中插入 1M 行的脚本,其中包含一些列:

INSERT INTO foo
   SELECT md5(random()::text), md5(random()::text), ..., md5(random()::text)
   FROM generate_series(1, 1000000) AS i;

但我不知道:

  1. 如何通过脚本创建包含 1000 个列(名称:c1、c2、c3、...、c999、c1000)的表(需要 SQL 脚本)
  2. 如何在表中插入 1M 行,结果为md5(random()::text) 为行的每个字段(需要 SQL 脚本)
  3. 是否可以创建具有 1M 列的表?或者 PostgeSql 有 1200 列的限制?也许我可以改变这个限制?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    如何通过脚本(需要 SQL 脚本)创建包含 1000 个列(名称:c1、c2、c3、...、c999、c1000)的表:

    CREATE TABLE t AS
    WITH cte AS (
      VALUES (
       '','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''
      ,'','','','','','','','','','','','','','','','','','','','','','','','',''   
      )
    )
    SELECT *
    FROM cte
    WHERE 1=2;
    

    DBFiddle Demo

    是否可以创建具有 1M 列的表?或者 PostgeSql 有 1200 列的限制?也许我可以改变这个限制?

    我不这么认为。基于doc

    Maximum Columns per Table   250 - 1600 depending on column types
    

    【讨论】:

    • 谢谢!但是 1)我期待一种没有这个巨大列表的方法('',''......) 2)如何将 1M 行插入到表中?你有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2022-11-21
    • 2019-09-23
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多