您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在PostgreSQL中将列数据类型从“文本”更改为“整数”

在PostgreSQL中将列数据类型从“文本”更改为“整数”

create table test(id varchar ); insert into test values(‘1’); insert into test values(‘11’); insert into test values(‘12’);

select * from test

 --Result--
 id
 character varying
--------------------------
 1
 11
 12

您可以从上表中看到我已将数据类型``character varying用于id 列’‘ 。但这是错误的,因为我总是给予integersasid。因此,使用varchar此处是一个不好的做法。因此,让我们尝试将列类型更改为integer

ALTER TABLE test ALTER COLUMN id TYPE integer;

但它返回:

错误:``渋d’‘列无法自动转换为整数sql状态:42804提示:指定USING表达式以执行转换

这意味着我们可以简单地更改数据类型,因为列中已经有数据。由于数据是character varyingPostgres类型的,尽管我们仅输入了整数,但Postgres不能期望它是整数。因此,现在,正如Postgres建议的那样,我们可以使用USING表达式将数据转换为整数。

ALTER TABLE test ALTER COLUMN id  TYPE integer USING (id::integer);

有用。

所以你应该使用

alter table a.attend alter column terminal TYPE INTEGER  USING (terminal::integer) ;
SQLServer 2022/1/1 18:47:48 有546人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶