很明显的错误啊,你表里面内容有误,可以先将列gender的内容全部update成female和male,然后再运行这条sql脚本。

以下内容来源:MYSQL中 ENUM 类型

ENUM类型

ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。

在下列某些情况下,值也可以是空串("") 或 NULL:如果将一个无效值插入一个 ENUM (即,一个不在允许值列表中的字符串),空字符串将作为一个特殊的错误值被插入。事实上,这个字符串有别于一个"普通的"空字符串,因为这个字符串有个数字索引值为 0。稍后有更详细描述。

如果一个 ENUM 被声明为 NULL,NULL 也是该列的一个合法值,并且该列的缺省值也将为 NULL 。如果一个 ENUM 被声明为 NOT NULL,该列的缺省值将是该列表所允许值的第一个成员。

每个枚举值均有一个索引值:在列说明中列表值所允许的成员值被从 1 开始编号。

空字符串错误值的索引值为 0。这就意味着,你可以使用下面所示的 SELECT 语句找出被赋于无效 ENUM值的记录行。

mysql> SELECT * FROM tbl_name WHERE enum_col=0;

NULL 值的索引值为 NULL。

例如,指定为 ENUM("one", "two", "three") 的一个列,可以有下面所显示的任一值。每个值的索引值也如下所示:

索引值

NULL

NULL

""

0

"one"

1

"two"

2

"three"

3

换个枚举最大可以有 65535 个成员值。

从 MySQL 3.23.51 开始,当表被创建时,ENUM 值尾部的空格将会自动删除。

当为一个 ENUM 列赋值时,字母的大小写是无关紧要的。然而,以后从列中检索出来的值的大小写却是匹配于创建表时所指定的允许值。

如果在一个数字语境中检索一个ENUM,列值的索引值将被返回。例如,你可以像这样使用数字值检索一个 ENUM 列:

mysql> SELECT enum_col+0 FROM tbl_name;

如果将一个数字存储到一个 ENUM 中,数字被当作为一个索引值,并且存储的值是该索引值所对应的枚举成员。(但是,这在 LOAD DATA 将不能工作,因为它视所有的输入均为字符串。) 在一个 ENUM 字符串中存储数字是不明智的,因为它可能会打乱思维。

ENUM 值依照列规格说明中的列表顺序进行排序。(换句话说,ENUM 值依照它们的索引号排序。)举例来说,对于 ENUM("a", "b") "a" 排在 "b" 后,但是对于 ENUM("b", "a") , "b" 却排在 "a" 之前。空字符串排在非空字符串前,NULL 值排在其它所有的枚举值前。为了防止意想不到的结果,建议依照字母的顺序定义 ENUM 列表。也可以通过使用 GROUP BY CONCAT(col) 来确定该以字母顺序排序而不是以索引值。

如果希望得到一个 ENUM 列的所有可能值,可以使用 SHOW COLUMNS FROM table_name LIKE enum_colum

mysql 改变枚举值_mysql 改变数据类型为枚举不成功?相关推荐

  1. mysql characterencoding 枚举值_mysql中enum类型理解,读完之后,大部分程序员收藏了......

    ENUM是枚举类型,它虽然只能保存一个值,却能够处理多达65535个预定义的值.下面是我写的一个mysql语句 CREATE TABLE student(id INT(11) PRIMARY key ...

  2. mysql intt默认值_MySQL如何处理隐式默认值

    有同学说遇到了主从不一致的问题. 大概情况是,从库是用mysqldump导出导入数据的方式创建的.创建成功后,在用mysqldump验证主从的表结构是否一致的时候,发现有些表定义不一致: 从他的比较结 ...

  3. mysql 枚举字段_MySQL字段中的枚举

    MySQL字段相信大家都有一些了解,下面将为您介绍的是MySQL字段中的枚举,希望对您学习MySQL字段方面能够有所帮助. MySQL字段中的枚举: mysql> create table me ...

  4. MySQL数据库(11):数据类型-enum 枚举类型

    enum 枚举类型 例如: 性别 gender 男 女 保密 基本语法 enum(数据值 1,数据值 2...); 数据值列表在 255 个以内,使用 1 个字节来存储 数据值列表超过 255,但是小 ...

  5. mysql 事务返回值_MySQL 的事务与 ACID

    所谓事务(Transaction),就是通过确保成批的操作要么完全执行,要么完全不执行,来维护数据库的完整性.举一个烂大街的例子:A 向 B 转账 1000 元,对应的 SQL 语句为:(没有显式定义 ...

  6. 枚举值转换(字符串转换为枚举和整数转换为枚举)

    假设定义了一个这样的枚举类型: enum MyEnum { aa = 1, bb = 2 } 1.字符串转换为枚举: string strA = "aa"; MyEnum myEn ...

  7. mysql blob取值_MySQL 数据类型:

    MySQL 数据类型: 字符型 数值型 日期时间型 内建类型 字符型: CHAR, BINARY:定长数据类型: VARCHAR, VARBINARY:变长数据类型:需要结束符: TEXT:TINYT ...

  8. mysql 体重 类型 身高_MySQL常用数据类型

    上篇文章我们讲到MySQL的常用命令,那么这篇文章我们分享一下MySQL数据库常用的数据类型有哪些,生产环境下我们在建表的时候,我们都是需要根据数据的类型去创建我们的表字段的,那么表字段的类型在我们数 ...

  9. json mysql 字段 默认值_MySQL中的JSON类型

    前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...

最新文章

  1. HA 高可用之V1版
  2. java获取栈最大值_实现O(1)获取最大最小值的栈----java
  3. 硬盘检测工具Smartmontools安装、部署、使用
  4. 博主应邀参加YOCSEF虚拟化技术论坛
  5. sklearn搭建线性模型的总结
  6. PPP 守护进程 RCE 漏洞已存在17年,可控制几乎所有的 Linux 系统
  7. Linux关键字查询
  8. Android的 线性布局,Android布局之LinearLayout线性布局
  9. 微信小程序的下载安装
  10. usb声卡驱动(五):声卡驱动的开始
  11. python长度转换代码尺和米_尺,寸,跟米,厘米的换算??
  12. 最全长文详述“数字人民币简史”,揭开数字人民币神秘面纱
  13. 在setTimeout或者ajax等异步方法中回调函数的写法与调用
  14. 你的硬盘有多快?,教你提升硬盘/NAS读写性能
  15. ArcGis for js 查询定位、缩放致
  16. linux mv修改文件名,linux命令mv - 移动或修改文件名
  17. 不同的打法,相同的内核,BAT车联网谁也不比谁更强
  18. 最新手机枰测出炉 iPhone X仅仅名列第9名
  19. [转载]强大的文件上传插件
  20. 当本本遇上蓝牙手机——玩转蓝牙无线上网、无线控制

热门文章

  1. Java延迟加载的最佳实践应用示例!
  2. 想让进程后台运行,试试Linux的nohup命令,3分钟学会。
  3. 8 种常见的SQL错误用法
  4. 10 个经典的 Java 集合面试题,看你能否答得上来?
  5. 干货+福利!MySQL常见的面试题+索引原理分析!
  6. linux mysql 事务_linux下mysql Insert update delete 事务 用户管理
  7. C++ 32位和64位
  8. ONVIF C++ 库
  9. 统计模型参数量与FLOPs
  10. ubuntu16.04安装英伟达(NVIDIA)驱动——run文件安装