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

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日

悬赏问题

  • ¥20 vscode虚拟环境依赖包未安装
  • ¥15 odoo17关于owl开发js代码问题
  • ¥15 光纤中多普勒频移公式的推导
  • ¥15 怎么制作一个人脸识别门禁系统
  • ¥20 大华dss监控平台网络关闭登不进去
  • ¥15 请使用蚁群算法解决下列问题,并给出我完整的代码
  • ¥20 关于php录入完成后,批量更新数据库
  • ¥15 请教往复密封润滑问题
  • ¥15 cocos creator发布ios包
  • ¥15 comsol压电材料数据