如果我有一个varchar类型的字段(并且所有值都是null或数字的字符串表示),我如何使用alter table将此列类型转换为bigint?
ara*_*nid 87
简单地通过解析字符串(转换)来转换:
alter table the_table alter column the_column type bigint using the_column::bigint
Run Code Online (Sandbox Code Playgroud)
实际上,您可以使用任何表达式the_column
而不是the_column::bigint
自定义转换.
请注意,这将重写表格,甚至锁定甚至读者,直到完成.
您可以创建一个类型为的临时列bigint
,然后像这样执行 SQL
UPDATE my_table SET bigint_column=varchar_column::bigint;
Run Code Online (Sandbox Code Playgroud)
然后删除您的 varchar_column 并重命名 bigint_column。这有点迂回,但不需要在 postgres 中进行自定义转换。
归档时间: |
|
查看次数: |
62488 次 |
最近记录: |