MySQL中使用ALTER TABLE ... MODIFY(...)而非MODIFY COLUMN是否合法?
MySQL中
ALTER TABLE ... MODIFY(...)写法的合法性说明 - 这种写法在MySQL里完全不合法,不管是旧版本还是新版本,MySQL从来没有支持过带括号的
MODIFY(...)语法。 - 先明确MySQL的标准写法:修改列的正确语法是
ALTER TABLE tableName MODIFY COLUMN column_name 列定义 [FIRST|AFTER 列名],其中COLUMN关键字是可选的,所以也可以简化成ALTER TABLE tableName MODIFY column_name 列定义,但绝对不会出现MODIFY(...)这种带括号的格式。 - 你看到的写法大概率是这两种情况:
- 把其他数据库的语法搞混了,比如Oracle支持
ALTER TABLE tableName MODIFY (列名 列定义, 列名 列定义)这种带括号的写法,还能同时修改多列,但MySQL不兼容这个语法。 - 学习资料出现了笔误,把标准写法写错成了带括号的形式。
- 把其他数据库的语法搞混了,比如Oracle支持
- 你可以自己验证:随便找个MySQL版本执行这种带括号的语句,肯定会报语法错误,换成不带括号的标准写法就能正常执行。
内容的提问来源于stack exchange,提问作者Nameless
相关产品推荐
相关产品推荐

