首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果MySQL Enum值的名称中有空格,如何定义Python枚举属性?

在Python中,如果MySQL Enum值的名称中有空格,可以使用字符串替代空格,并使用setattr()函数动态地为Python枚举类添加属性。

以下是示例代码:

代码语言:txt
复制
import enum

class MySQLEnum(enum.Enum):
    ENUM_VALUE_ONE = 'Enum Value One'
    ENUM_VALUE_TWO = 'Enum Value Two'

# 定义MySQL Enum值的名称与Python枚举属性的对应关系
enum_mapping = {
    'Enum Value One': MySQLEnum.ENUM_VALUE_ONE,
    'Enum Value Two': MySQLEnum.ENUM_VALUE_TWO
}

# 为MySQL Enum值中的空格部分添加Python枚举属性
for name, member in enum_mapping.items():
    setattr(MySQLEnum, name.replace(' ', '_'), member)

# 测试使用
print(MySQLEnum.ENUM_VALUE_ONE)  # 输出:MySQLEnum.ENUM_VALUE_ONE
print(MySQLEnum['Enum Value One'])  # 输出:MySQLEnum.ENUM_VALUE_ONE

这样,我们通过使用字符串替代空格,并动态添加属性,就可以在Python中定义MySQL Enum值中包含空格的枚举属性了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL数据类型 详细讲解

如果改变M而固定D,则取值范围将随M变大而变大。 1.3 日期/时间类型 MySQL中有多种表示日期数据类型,主要有:DATETIME、DATE、TIMESTAMP、TIME和YEAR。...L+4字节,在此L<2^24 ENUM 枚举类型,只能有一个枚举字符串 1或2个字节,取决于枚举数目(最大65535) SET 一个设置,字符串对象可以有0个或多个SET成员 1,2,3,4或8...如何选择数据类型 MySQL提供了大量数据类型,为了优化存储,提高数据库性能,在任何情况下均应该使用精确类型。即在所有可以表示该列类型中,该类型使用存储最少。...2.5 ENUM和SET     ENUM只能取单,它数据列表示一个枚举集合。它合法列表最多有65535个成员。因此,在需要从多个中选取一个时,可以使用ENUM。...比如:性别字段适合定义ENUM类型,每次只能从’男’ 或 ‘女’中取一个。     SET可取多值。它合法取值列表最多允许有64个成员。空字符串也是一个合法SET

1.5K10

Python 基础(十五):枚举

1 简介 起初 Python 中并未内置枚举enum)类型,枚举是在 Python3.4 添加新功能,此时我们可能会有一个疑问:Python3.4 之前版本还能不能使用枚举呢? ?...我们先来思考一个问题:不使用枚举我们如何定义常量呢? ? 常用做法是采用变量名大写方式来定义,这种方式虽然简单,但问题在于我们定义仍然是变量、是可以被修改,而常量是什么呢?...2 使用 2.1 创建 枚举语法与 class 语法相同,之前我们在Python 基础(十一):面向对象中已经介绍过 class 了,枚举定义可以通过继承 Enum 方式来实现, 看一下示例: from...访问 枚举成员及属性访问如下所示: # 枚举成员 print(WeekDay.Mon) # 枚举成员名称 print(WeekDay.Mon.name) # 枚举成员 print(WeekDay.Mon.value...我们定义枚举时,成员名称是不可以重复,但成员是可以重复如果想要保证成员不可重复,可以通过装饰器 @unique 来实现,如下所示: from enum import Enum, unique

54230
  • SqlAlchemy 2.0 中文文档(五)

    然后,Enum SQL 类型知道如何生成具有适当设置已配置版本,包括默认字符串长度。如果传递 typing.Literal 不仅包含字符串,则会引发具有信息错误。...然后,Enum SQL 类型知道如何生成具有适当设置配置版本,包括默认字符串长度。如果传递了不仅由字符串组成 typing.Literal,则会引发详细错误。...然后,Enum SQL 类型知道如何生成一个带有适当设置配置版本,包括默认字符串长度。如果传递 typing.Literal 不仅包含字符串,则会引发一个信息性错误。...然后,Enum SQL 类型知道如何生成具有适当设置已配置版本,包括默认字符串长度。如果传递typing.Literal不仅由字符串组成,则会引发信息性错误。...### 映射表列备用属性名称 命名声明式映射列 部分演示了如何使用mapped_column()为生成Column对象提供一个与其映射属性名称分离特定名称

    21210

    高性能MySQL(三):Schema与数据类型优化

    文章目录 选择优化数据类型 整数类型 字符串类型 BLOG 和 TEXT 类型 使用枚举ENUM)代替字符串 MySQL schema设计中问题 选择优化数据类型 MySQL支持数据类型非常多...CHAR: CHAR类型是定长,当存储CHAR时,MySQL会删除所有的末位空格。CHAR会根据需要采用空格进行填充以方便比较。 CHAR适合存储很短字符串,或者所有的都接近一个长度。...---- 使用枚举ENUM)代替字符串 有时候可以使用枚举列代替常用字符串类型。...枚举列可以把一些不重复字符串存储成一个预定义集合。...MySQL在存储枚举时非常紧凑,会根据列表数量压缩到一个或者两个字节中,MySQL会在内部将每个在列表中位置保存成整数,并且在表.frm文件中保存 “数字 - 字符串”映射关系查找表。

    62710

    MySQL精选 | 枚举类型ENUMDDL变更测试

    增加枚举类型字段定义默认属性 root@localhost : mysqlops 02:35:51> ALTER TABLE mysqlops_set_enum MODIFY Work_Option...NULL且无默认定义属性,变更为不允许存储NULL和制定枚举类型字段默认,这个过程需要表级锁,锁住表堵塞其他事务性操作,与其他数据类型字段属性变更是一样。...修改枚举类型字段定义默认,且新默认不在枚举列表中 root@localhost : mysqlops 02:39:15> ALTER TABLE mysqlops_set_enum MODIFY...(五) 总结 ---- 通过上述对MySQL数据库表枚举类型字段定义属性和索引方面的DDL变更操作,观察对枚举类型字段存储数据影响,可以得出下列结论: a....MySQL数据库枚举类型字段DDL变更操作,属于枚举类型字段特有的内容: 枚举类型字段枚举数据值域列表,以尾部追加枚举元素方式,不会出现锁表等; 枚举类型字段枚举数据值域列表中,若是调整枚举类型枚举元素顺序

    3K30

    MySQL(数据类型和完整约束)

    如果改变M而固定D,则取值范围将随M变大而变大。 1.3 日期/时间类型 MySQL中有多种表示日期数据类型,主要有:DATETIME、DATE、TIMESTAMP、TIME和YEAR。...L+4字节,在此L<2^24 ENUM 枚举类型,只能有一个枚举字符串 1或2个字节,取决于枚举数目(最大65535) SET 一个设置,字符串对象可以有0个或多个SET成员 1,2,3,4或8...2.5 ENUM和SET ENUM只能取单,它数据列表示一个枚举集合。它合法列表最多有65535个成员。因此,在需要从多个中选取一个时,可以使用ENUM。...比如:性别字段适合定义ENUM类型,每次只能从’男’ 或 ‘女’中取一个。 SET可取多值。它合法取值列表最多允许有64个成员。空字符串也是一个合法SET。...字段是否有默认,缺省默认是NULL,如果插入记录时不给字段赋值,此字段使用默认 sex enum('male','female') not null default 'male' age int

    94320

    MySQL 枚举类型“八宗罪”

    乍一看,我们可以通过枚举类型,很好地将记录限制在允许范围内。一个典型例子是,一个具有字段名称为“大陆板块”数据表:每一个国家位于一个大陆板块,而这些大陆板块不太可能经常变化。...很重要一点,当更改ENUM类型字段枚举集合时,MySQL会转换任意已有但不存在于新枚举集合中记录为''(空字符串)。使用关系表,在更改和删除枚举集合时会灵活很多(下面会提到)。 3....回到ENUM上:你要如何获取全部枚举?...处理上没问题, 但如果我们使用是带外键关系表, 那么我们数据能因健壮性而更加可靠。 同样,MySQL 会为ENUM关联枚举索引,并且在使用中会错误地调用到索引而不是ENUM,反之亦然。...超过二十个会变得很累赘,超过50个必然难于管理与使用。 如果你无论如何都要用ENUM 1. ENUM千万不要使用数值型 ENUM定义为字符型数据是有原因

    4.4K52

    MySQL8.0实战(二) - 数据库设计

    如果 ENUM 里面是字符串,对于其他数据库来说就更郁闷了,还不能设为tinyint等类型字段 23.2.2 ENUM 索引 纯数字类型不建议用枚举类型,这是因为在 ENUM 内部维护有一个隐形索引...,也是按数字排列,容易混淆;添加枚举也是一个问题,如果添加在最后还好,如果添加在中间什么位置的话,原来隐藏索引将不再起作用 23.2.3 ENUM 字段 NULL ENUM 字段默认是可以插入...NULL ,这个就比较尴尬了,而且没有办法优化 23.2.4 插入 如果插入ENUM设定大,会默认保存成接近那个;插入不能包含函数,不能传递参数 所以如果插入是数字型,...问答评论表 24.8 笔记表 24.9 用户选课表 30 如何为表和列选择合适名字 所有数据库对像名称必须使用小写字母可选用下划线分割 所有数据库对像名称定义禁止使用MySQL保留关建字 数据库对像命名要能做到见名识义...内容综述 数据库逻辑设计规范 MySQL常用存储引擎及其选择方法 MySQL常用数据类型及其选择方法 如何为表选择适合存储类型 如何为表起一个好名 参考 数据库设计 MySQL慎用 ENUM

    62721

    Python 枚举

    枚举定义 首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 用于定义枚举class和定义class是有区别。...1.3 如果枚举中存在相同成员,在通过获取枚举成员时,只能获取到第一个成员 from enum import Enum class Color(Enum): red = 1 red_alias...= 1 print(Color(1)) 输出结果为:Color.red 1.4 如果要限制定义枚举时,不能定义相同成员。...3.3 如果想把重复成员也遍历出来,要用枚举一个特殊属性__members__ from enum import Enum class Color(Enum): red = 1...; 继承父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple单元素写法; class方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。

    60010

    MySQL数据库应用总结(八)—MySQL数据库数据类型和运算符(下)

    但由于浮点数容易产生误差,因此,如果对精度要求比较高则用decimal来存储。 Decimal在MySQL中是以字符串存储,用于定义货币等对精度要求比较高数据。...Char会自动删除插入数据尾部空格,varchar不会删除尾部空格。 char采用固定长度,所以它处理速度比varchar要快,但它缺点就是浪费空间。...5.enum与set类型 enum只能取单,他数据列是一个枚举集合。它合法取值列表最多允许有65535个成员。因此,在需要从多个中选取一个时,可以使用enum。...例如性别字段适合定义enum类型。 Set可以取多个。它合法取值列表最多允许有64个成员。空字符串可是一个合法set。在需要取多个时适合使用set类型。如一个人兴趣爱好。...Enum和set是以字符串形式出现,但在内部,MySQL以数值形式存储它们。 6.blob与text类型 blob是二进制字符串,text是非二进制字符串,两者均可存放大量信息。

    1.8K100

    MySQL-2

    有很多种方法可以指定浮点列所需要精度,这使得MySQL会选择不同数据类型或在存储时对进行取舍。这些精度定义是非标准,所以建议只指定数据类型而不指定精度。...CHAR类型时定长MySQL总是根据定义字符串长度分配足够空间。当存储CHAR时,MySQL会删除所有的末尾空格。CHAR会根据需要采用空格进行填充以方便比较。...Enum枚举类型 也可以是空串(“”) 或 NULL 枚举类型是特殊字符串类型,定义枚举列后,真正存在表中是整数,表.frm文件则保存整数和枚举字符串映射关系 如:CREATE TABLE...但是MyISAM和变长结构和InnoDB行结构则总需要转换。转换代价依赖于列数量。 太多关联:实体——属性——(EVA)设计模式在MySQL下不能很好工作。...变相枚举枚举列允许在列中存储一组定义单个,集合(SET)则允许在列中存储一组定义一个或多个

    81210

    数据库之数据类型详解

    'n') 字段名指将要定义字段, n 指枚举列表中第 n 个ENUM类型字段在取值时,只能在指定枚举列表中取,而且一次只能取一个。如果创建成员中有空格时,其尾部空格将自动删除。...ENUM 在内部用整数表示,每个枚举均有一个索引:列表所允许成员从 1 开始编号,MySQL 存储就是这个索引编号。枚举最多可以有 65535 个元素。...),(90,1),(75,2),(50,3); #如果插入一个没有定义枚举则会报错,如下: mysql> insert into tab10 values(70,'best'),(90,1),(75,2...'n'); 与 ENUM 类型相同,SET 在内部用整数表示,列表中每一个都有一个索引编号; 与 ENUM 类型不同是,ENUM 类型字段只能从定义中选择一个插入,而 SET 类型列可从定义中选择多个字符联合...; 如果插入 SET 字段中列有重复,则 MySQL 自动删除重复,插入 SET 字段顺序并不重要,MySQL 会在存入数据库时,按照定义顺序显示。

    2.5K30

    考前复习必备MySQL数据库(关系型数据库管理系统)

    外键索引,如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率方式去管理和使用外键约束条件。...> MySQL 字段属性应该尽量设置为 NOT NULL 首先,考虑空“”和null概念: 空是不占用空间 mysql中null其实是占用空间 MySQL删除数据表 语法,删除mysql数据表语法...定义可变长度字符串 char长度固定为创建表时声明长度,其取值范围为0到255,当保存char时,在右边填充空格以达到指定长度。...当检索到char时,其尾部空格会被删除,所以在存储时,一般字符串右边不能有空格如果字符串右边有空格,在查询出来后会被删除。...enum enum表示枚举类型,它取值范围需要在创建表时通过枚举方式显式制定。enum是忽略大小写enum只允许从集合中选取单个,不能一次选取多个

    6K10

    MySQL建表数据类型选择

    通常情况下最好指定列为 NOT NULL,除非真的需要存储 NULL 如果查询中包含可为 NULL 列,对 MySQL 来说更难优化,因为可为 NULL 列使得索引、索引统计和比较都更复杂。...decimal 属于定点类型(精确)。 MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M 表示该总共长度,D 表示小数点后面的长度。...char 类型是定长MySQL 总是根据定义字符串长度分配足够空间。 char 存储会删除存储数据末尾空格;varchar 不会。...枚举enum)类型 MySQL 在内部会将每个在列表中位置保存为整数,并且在表 .frm 文件中保存 “数字-字符串” 映射关系 “查找表”。...如果使用数字作为枚举常量,这种双重性很容易导致混乱,例如 enum('1', '2', '3') 。建议尽量避免这么做。 枚举字段是按照内部存储整数而不是定义字符串进行排序

    5.2K10

    Python编程思想(31):枚举类型深度详解

    在很多场景下,一个变量是固定且有限,例如,季节只有4个(春、夏、秋、冬),性别只有2个(男和女)。这种有限且固定数据类型在Python中称为枚举类型。 1....枚举类型基础 在Python中有两种方式来定义枚举类型: 直接使用Enum列出多个枚举来创建枚举类 通过继承Enum基类来派生枚举类 如下面的代码演示了直接使用Enum列出多个枚举来创建枚举类类型。...在定义了上面的 Season枚举类之后,程序可直接通过枚举进行访问,这些枚举都是该枚举成员,每个成员都有name和value两个属性,其中name属性为该枚举变量名,value代表该枚举序号...Season(2)) # Season.SUMMER 此外,Python还为枚举提供了一个 members属性,该属性返回一个dict字典,字典包含了该枚举所有枚举实例。...如果定义更复杂枚举类型,则可通过继承Enum类来派生枚举类,在这种方式下程序就可以为枚举类型额外定义方法了, 示例代码:ext_enum.py import enum class Orientation

    3.1K10

    Python 枚举类型 Enum

    1d = {"jan": 1, "feb": 2, "mar": 2} 对于这种情况,在 Python3.4 之后,给我们增加了枚举类,枚举类型可以看作是一种标签或是一系列常量集合,通常用于表示某些特定有限集合...同时使用类获取属性时候,输出不是它数值,而是会显示枚举项。这样更能增加代码可读性。 对比普通类,它有以下优势: 不允许在类外直接修改枚举。...枚举可以相同,但是相同各项 Key 都会当做别名 在枚举类中,可以有相同,但是后面的枚举项都是第一个别名 1class Color(Enum): 2 RED = 1 3 GREEN...如果你不想让枚举中有相同 value Enum 也提供了相应处理方法 1from enum import Enum 2from enum import unique 3 4@unique...那么如果我们怎么将枚举转换成枚举名称呢?

    1.2K30

    java编码规范

    前言 如果这份规范中有不合理地方,欢迎提issue/提PR等各种形式进行完善。 如果您有更好代码风格未在本规范中列出,欢迎提issue/提PR等各种形式进行完善。...枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。 说明:枚举其实就是特殊常量类,且构造方法被默认强制是私有。...【强制】不允许出现任何魔法(即未经定义常量)直接出现在代码中。...5) 类内共享常量:直接在类内部 private static final 定义。 ---- 5.【推荐】如果变量值仅在一个范围内变化,且带有名称之外延伸属性定义枚举类。...【强制】定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认

    2.5K20

    java编码规范

    前言 如果这份规范中有不合理地方,欢迎提issue/提PR等各种形式进行完善。 如果您有更好代码风格未在本规范中列出,欢迎提issue/提PR等各种形式进行完善。...枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。 说明:枚举其实就是特殊常量类,且构造方法被默认强制是私有。...【强制】不允许出现任何魔法(即未经定义常量)直接出现在代码中。...5) 类内共享常量:直接在类内部 private static final 定义。 ---- 5.【推荐】如果变量值仅在一个范围内变化,且带有名称之外延伸属性定义枚举类。...【强制】定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认

    2.6K10
    领券