将列类型从文本更改为整数
Change column type from text to integer
我有类型为 text
的列
我需要将列类型更改为整数。
我试着用下面的脚本来做
ALTER TABLE table ALTER COLUMN column TYPE integer
显然我得到了一个错误。
但是,如果我以前的值类似于 "Word1"
、"Word2"
,现在我想将它们保持为 0
、1
[=,我该如何修改我的脚本17=]
如果可能的话,如果此脚本在处理此脚本时将 0
设置为所有行,我会很好。
如果您的列仅包含整数值,请尝试以下方式:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
如果您的列包含 non-numeric 个值,请尝试以下方法:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (CASE
WHEN id~E'^\d+$' THEN
CAST (id AS INTEGER)
ELSE
0
END);
我有类型为 text
的列
我需要将列类型更改为整数。
我试着用下面的脚本来做
ALTER TABLE table ALTER COLUMN column TYPE integer
显然我得到了一个错误。
但是,如果我以前的值类似于 "Word1"
、"Word2"
,现在我想将它们保持为 0
、1
[=,我该如何修改我的脚本17=]
如果可能的话,如果此脚本在处理此脚本时将 0
设置为所有行,我会很好。
如果您的列仅包含整数值,请尝试以下方式:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
如果您的列包含 non-numeric 个值,请尝试以下方法:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (CASE
WHEN id~E'^\d+$' THEN
CAST (id AS INTEGER)
ELSE
0
END);