mysql中有一个pet表,表中有一字段sex(数据类型为char(5)),想把sex的数据类型改为ENUM枚举,命令如下:altertablepetaltercolumnsexenum("m","f");返回错误信息如下:ERROR1064(...
mysql中有一个pet表,表中有一字段sex(数据类型为char(5)),想把sex的数据类型改为ENUM枚举,命令如下: alter table pet alter column sex enum("m","f");返回错误信息如下:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'enum("m","f")' at line 1
请教高人指点!
感谢twtba的解答,之前我在网上搜到了一篇解决类似问题的文章,参照命令格式输入:alter table pet modify sex enum('m','f');执行后成功。看到twtba兄弟的解答后把sex改回原来类型,并按照twtba2541老兄的提示操作后报如下错误:
mysql> alter table pet change 'sex' 'sex' enum('m','f') not null default 'm';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''sex'
'sex' enum('m','f') not null default 'm'' at line 1
首先,我想到的是不是我敲错了代码,故直接把twtba老兄代码复制到控制台,果然执行后OK。可是我发现一个奇怪的问题:
mysql> alter table pet change `sex` `sex` enum('m','f') not null default 'm';
Query OK, 15 rows affected (0.17 sec)
Records: 15 Duplicates: 0 Warnings: 0
字段sex两边的符号和我手动输入的不一样!(如图示)切换输入法也没能输入完全相同的符号!按理说应该是英文状态下的单引号,可是为什么我第一次手动输入sql没能成功执行呢,百思不得其解?
展开