【问题标题】:MySQL convert column datatype from VARCHAR to INTMySQL 将列数据类型从 VARCHAR 转换为 INT
【发布时间】:2023-03-04 21:53:01
【问题描述】:

我有一个带有 VARCHAR(25) 列的 MySQL 表,我想将其转换为 INT。列中的所有数据都是整数或空白。我试过这个命令:

ALTER TABLE ip MODIFY isp INT UNSIGNED NOT NULL;

不幸的是,由于一些现有的行是空的,我得到了这个错误:

ERROR 1366 (HY000): Incorrect integer value: '' for column 'isp' at row 2

感谢您的帮助。

【问题讨论】:

  • 您有现有记录,但没有像 0 这样的默认值。简而言之,它不能为数字放置空内容。

标签: mysql


【解决方案1】:

在更改您的表格之前,请尝试更新您的值。

目标是在您有空值(无法转换为 int)的字段中设置一个“0”值

update ip
set isp = '0' where trim(coalesce(isp, '')) = '';

如果 isp 不可为空,您可以移除 coalesce 函数。

update ip 
set isp = '0' where trim(isp) = '';

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 2011-12-01
    • 2012-04-10
    相关资源
    最近更新 更多