mysql - MySQL 如何存储枚举?

标签 mysql enums types

如果我有这样一张表:

CREATE TABLE sizes (
    name ENUM('small', 'medium', 'large')
);

MySQL 是要在每一行中存储这些字符串,还是在内部使用更小的东西(例如整数)来知道要引用哪个枚举值?

我想在表中使用枚举,但我担心它是否像在每一行中存储一个字符串一样浪费。

最佳答案

它在 INSERT/UPDATE 时将它们转换为整数,并在 SELECT 时将它们转换回字符串,因此内部存储是整数,但您不会接触到它。

您可以检索整数,如 SELECT mycolumn + 0

ENUMs in MySQL 5

关于mysql - MySQL 如何存储枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/259547/

相关文章:

enums - 如何使 CRMSvcUtil.exe 生成不重复、无错误的早期绑定(bind)选项集?

mysql 按 column1 排序但如果 column2 = 0 然后添加到末尾但仍按第 1 列排序

mysql - 将一个大表拆分为多个表

mysql - 无法从 AWS Lambda 连接到默认 VPC 中的 AWS RDS 实例

c - 有没有办法在 C 中指定 int 大小?

C# 将 char 转换为大于 256 的 int

来自二进制字符串和溢出的 C++ char 定义

sql - 清除数据库表中的所有内容

java - 我可以从 Java 类文件中删除枚举值吗?

java - 嵌套枚举是静态的?