首页
学习
活动
专区
工具
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.7K10

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

56230
  • SqlAlchemy 2.0 中文文档(五)

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

    29710

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

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

    64510

    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

    98320

    MySQL精选 | 枚举类型ENUM的DDL变更测试

    增加枚举类型字段定义的默认值属性 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 枚举类型的“八宗罪”

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

    4.5K52

    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

    65321

    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上。

    60410

    MySQL-2

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

    82110

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

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

    6K10

    数据库之数据类型详解

    '值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 会在存入数据库时,按照定义的顺序显示。

    4.4K30

    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.9K100

    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

    java编码规范

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

    2.6K10

    java编码规范

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

    2.5K20

    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.3K10

    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.3K30
    领券