怎样修改mysql列的类型_mysql如何修改某一列的数据类型

本文记录了将MySQL中pet表的sex字段从char类型更改为ENUM枚举类型的过程及遇到的语法错误。通过调整SQL命令格式,最终成功实现了字段类型的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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没能成功执行呢,百思不得其解?

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值