You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL修改employee表empType字段为int时触发ERROR1366错误如何解决?

报错原因
  • 当前employee表的empType字段存储的全部是「General Manager」这类字符串类型的职位名称,MySQL不支持直接将字符串类型的字段值批量转换为整数类型,因此直接修改字段类型为int(7)时会触发类型不匹配报错。
解决步骤

首先需要将employee表中empType的字符串值替换为employeeType表中对应职位的ID,再修改字段类型,操作如下:

  1. 关联两张表更新empType的取值为对应ID
UPDATE employee e
INNER JOIN employeeType et ON e.empType = et.type
SET e.empType = et.ID;

注:此时empType仍是varchar类型,存入数字格式的字符串不会触发报错,后续修改字段类型时MySQL可自动完成格式转换。

  1. 再次执行修改字段类型的命令
ALTER TABLE employee MODIFY COLUMN empType int(7) NOT NULL;
  1. (可选)添加外键约束保证数据一致性
ALTER TABLE employee
ADD CONSTRAINT fk_employee_emptype FOREIGN KEY (empType) REFERENCES employeeType(ID);

内容的提问来源于stack exchange,提问作者zihao zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:18:03