PostgreSQL - ALTER列数据类型,从整数到整数数组

时间:2012-12-14 13:35:57

标签: postgresql type-conversion

请帮助修改整数类型到整数数组的列:

我创建了一个包含整数类型content_id列的表。然后我尝试将content_id(integer)更改为integer[](integer array)但显示的错误显示为:

TestDatabase=# ALTER TABLE tbl_handset_content ALTER COLUMN content_id TYPE integer[];
ERROR:  column "content_id" cannot be cast to type "pg_catalog.int4[]"

此致

Sravan

2 个答案:

答案 0 :(得分:21)

尝试此操作(在test发生之前,列test_id的类型为INTEGER)。 PostgreSQL 8.4。

ALTER TABLE test.test_id
    ALTER COLUMN test_id TYPE INTEGER[]
    USING array[test_id]::INTEGER[];

答案 1 :(得分:2)

这对我来说效果更好!

ALTER TABLE schema.table
    ALTER COLUMN column
    DROP DEFAULT;
ALTER TABLE schema.table
    ALTER COLUMN column TYPE INTEGER[]
    USING array[column]::INTEGER[];
ALTER TABLE schema.table
    ALTER COLUMN column SET DEFAULT '{}';