【问题标题】:change column datatype from array to integer将列数据类型从数组更改为整数
【发布时间】:2019-06-25 20:20:55
【问题描述】:

我需要将列的数据类型从 _float8 更改为 int4

ALTER TABLE "table" ALTER COLUMN "col" SET DATA TYPE int4;

结果为@​​987654322@

ALTER TABLE "table" ALTER COLUMN "col" SET DATA TYPE int4 USING (col::integer);

结果为@​​987654324@

有什么想法吗?

【问题讨论】:

  • 。 .为什么要将数组转换为整数?
  • @GordonLinoff 谁把这张桌子搞砸了
  • @niga 创建一个新列并复制数组中应该是整数的元素。删除旧列并重命名新列。

标签: postgresql ddl


【解决方案1】:

你必须指出在转换中应该使用数组的哪个元素,例如

alter table x alter column y set data type int4 using (y[1]::int)

db<>fiddle.

【讨论】:

    【解决方案2】:

    问题是你有一个数组。要解决此问题,您需要数组运算符:

    ALTER TABLE "table"
        ALTER COLUMN "col" SET DATA TYPE int4 USING (col[1]::integer);
    

    Here 是一个 dbfiddle。

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多