错误代码1833不能改变列在国外使用

  

最近修改mysql数据库表中的字段长度时报错,执行更改的sql语句:
ALTER TABLE <强> server_list <强> 修改列server_lip CHAR (25);

  

报错信息:
1执行查询,0成功,1错误,0警告
查询:alter table server_list修改列server_lip char (25)
错误代码:1833
不能改变列“server_lip”:使用一个外键约束的server_history_ibfk_1表“OMServer.server_history”

  

原因:server_list表中的server_lip字段为server_history表的外键,server_history建表语句:
CREATE TABLE <代码> server_history (
<代码> ID> <代码> history_id int (11) NOT NULL评论的事件ID”,
<代码> history_ip char (15) NOT NULL评论的事件IP地址”,
<代码> history_user char (15) NOT NULL评论的事件用户名”,
<代码> history_datetime datetime NOT NULL评论的事件时间”,
<代码> db_datetime 时间戳NOT NULL默认CURRENT_TIMESTAMP评论“入库时间”,
<代码> history_command char (255) NOT NULL评论的事件命令”,
主键(<代码> ID> 键<代码> history_ip (<代码> history_ip> <>强约束<代码> server_history_ibfk_1> history_ip> server_list (<代码> server_lip>
)引擎=InnoDB AUTO_INCREMENT=27默认字符集=utf8评论='操作事件表”

  

解决步骤:
1。锁表
server_history写锁表,server_list写;
2。查看是否被锁
错误代码1833不能改变列用于外国“> <br/> 3。解除server_history表外键约束<br/> ALTER TABLE server_history删除外键server_history_ibfk_1; <br/> 4。更改server_list表server_lip字段长度<br/> ALTER TABLE server_list修改列server_lip CHAR (25); <br/>查看表结构发现已完成字段长度更新<br/> <img src=错误代码1833不能改变列在国外使用