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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵