gpt4 book ai didi

postgresql - 将 varchar 列转换为 smallint 时数据发生变化

转载 作者:行者123 更新时间:2023-11-29 12:47:53 25 4
gpt4 key购买 nike

1) 创建表

CREATE TABLE ad_position_ad ( 
p_id bigint ,
p_name character varying(20) ,
devid integer ,
ad_type character varying(20) ,
platform character varying(20) ,
category_id integer ,
config character varying(20) ,
is_check character varying(20) ,
status character varying(20) ,
showing_total bigint ,
click_total bigint ,
user_total bigint ,
income_total bigint ,
online_time integer ,
create_time integer ,
modify_time integer);

创建表后,我们向表中插入一些数据。

2)表的数据

mydb=> select count(*) from ad_position_ad;
count
-------
275
(1 row)

mydb=> select distinct config from ad_position_ad;
config
--------
2
0
1
(3 rows)

3) 将 varchar 列转换为 smallint

mydb=>
alter table ad_position_ad
alter column config type smallint using platform::smallint;
ALTER TABLE

4)再次检查数据

mydb=> select distinct config from ad_position_ad;
config
--------
3
(1 row)

注意配置列的值已经改变了。有人知道吗?但是下面的命令工作正常,并且值没有改变:

mydb=>
alter table ad_position_ad
alter column config type smallint using cast(config as smallint);
ALTER TABLE

最佳答案

编辑:

重写问题后,我终于认为我找到了真正的问题。我引用:

alter table ad_position_ad
alter column config type smallint using platform::smallint;

您意识到您ALTER COLUMN config,但使用列platform 的值为了它?

尝试:

alter table ad_position_ad
alter column config type smallint using config::smallint;

关于postgresql - 将 varchar 列转换为 smallint 时数据发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com