aabbcc12580 2022-04-05 20:14 采纳率: 75%
浏览 179
已结题

mysql改变字段类型报错

mysql> ALTER TABLE user modify phone int(25) not null;
ERROR 1366 (HY000): Incorrect integer value: '' for column 'phone' at row 1

  • 写回答

4条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-04-05 20:53
    关注

    你之前的字段类型是什么?
    字段类型不是随便可以改的,尤其是在有数据的情况下


    我模拟出来了,你原表中存在有空字符串'',而不是null,因此修改会报错

    create table test_20220404_a (b VARCHAR(25) not null);
    insert into test_20220404_a values ('');
    ALTER TABLE test_20220404_a modify b int(25) not null;
    

    img

    下面这个方式可以把你的这个字段成功改掉,但是由于你设置了不允许为null,因此只能默认设置个0上去了

    ALTER TABLE test_20220404_a modify b VARCHAR(25) ;
    update test_20220404_a set b=0 where b ='';
    ALTER TABLE test_20220404_a modify b int(25) not null;
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月5日
  • 已采纳回答 4月5日
  • 创建了问题 4月5日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估