我在数据类型为Int32
的表中有一列。是否可以将列转换为数组数据类型Array(Int32)
。如果没有其他方法,请告诉我。
答案 0 :(得分:0)
ALTER TABLE .. MODIFY COLUMN查询无法执行将列的类型从 int 更改为 Array(int)的操作,因为不允许进行这种类型转换。>
因此,您需要执行以下步骤:
LAG
SET
ALTER TABLE test.test_004 ADD COLUMN `value_array` Array(int);
/* Test table preparation:
CREATE TABLE test.test_004
(
`id` int,
`value` int
)
ENGINE = MergeTree();
INSERT INTO test.test_004 VALUES (1, 10), (2, 20), (3, 30), (4, 40);
*/
ALTER TABLE test.test_004
UPDATE value_array = [value] WHERE 1
/* Result
┌─id─┬─value─┬─value_array─┐
│ 1 │ 10 │ [10] │
│ 2 │ 20 │ [20] │
│ 3 │ 30 │ [30] │
│ 4 │ 40 │ [40] │
└────┴───────┴─────────────┘
*/
注释:如果表位于多个服务器上,则为每个查询分配额外的ON CLUSTER子句。