MySQL修改列名失败求助:执行重命名命令后列名未变更(需保留列值)
解决MySQL列重命名不生效的问题
我一眼就看出问题所在啦——你的原列名idbook-loan包含连字符(-),这在MySQL里属于特殊字符,直接写会被当成减法运算符解析,导致你的ALTER命令语法错误,自然就没生效啦。
正确的重命名命令
你需要把带特殊字符的列名用**反引号(`)**括起来,修正后的命令应该是这样:
ALTER TABLE book_loan RENAME COLUMN `idbook-loan` TO idbook_loan;
兼容旧版本MySQL的方案(MySQL 8.0之前)
如果你的MySQL版本低于8.0,RENAME COLUMN语法还不支持,得用CHANGE COLUMN来实现,写法如下:
ALTER TABLE book_loan CHANGE COLUMN `idbook-loan` idbook_loan INT;
注意:这里最后要写上列的原数据类型(比如例子里的INT),如果不知道可以先查一下表结构。
验证是否修改成功
执行完命令后,你可以用这条语句查看表结构,确认列名是否已经更新:
DESCRIBE book_loan;
内容的提问来源于stack exchange,提问作者Jose Erasmo Hernandez Yate
相关产品推荐
相关产品推荐

