MySQL ENUM 数据类型有哪些不同的属性?

2023年 8月 28日 64.7k 0

MySQL ENUM 数据类型有哪些不同的属性?

  • NOT NULL  -在 ENUM 类型中,默认允许 NULL 值。为了禁止 NULL 值,我们需要在描述 ENUM 列时使用 NOT NULL 属性。
  • NULL  - NULL 属性是 DEFAULT NULL 的同义词。 NULL 的索引值为 NULL。
  • DEFAULT  - DEFAULT 属性会导致 ENUM 数据类型在未指定值时具有默认值。换句话说,我们可以说 INSERT 语句不必包含该字段的值,因为如果不包含则将插入 DEFAULT 后面的值。 DEFAULT 表达式中不允许使用函数。对于 ENUM 数据类型,DEFAULT 值包括 NULL 和空字符串 ('')。
  • 示例

    以下示例将展示这些属性与 ENUM 数据类型的使用。

    mysql> SET SESSION sql_mode = '';
    Query OK, 0 rows affected (0.00 sec)

    mysql> Create Table enumtesting(e_value ENUM('a','1')NOT NULL DEFAULT '1',id TINYINT NOT NULL);
    Query OK, 0 rows affected (0.23 sec)

    mysql>Insert into
    enumtesting(e_value,id)values('1','1'),('',2),(NULL,3),('abc',4);
    Query OK, 4 rows affected, 3 warnings (0.09 sec)
    Records: 4 Duplicates: 0 Warnings: 3

    mysql> show warnings;
    +---------+------+----------------------------------------------------+
    | Level | Code | Message |
    +---------+------+----------------------------------------------------+
    | Warning | 1265 | Data truncated for column 'e_value' at row 2 |
    | Warning | 1048 | Column 'e_value' cannot be null |
    | Warning | 1265 | Data truncated for column 'e_value' at row 4 |
    +---------+------+----------------------------------------------------+
    3 rows in set (0.00 sec)

    mysql> Select * from enumtesting;
    +----+---------+
    | e_value | id |
    +---------+----+
    | 1 | 1 |
    | | 2 |
    | | 3 |
    | | 4 |
    +---------+----+
    4 rows in set (0.00 sec)

    mysql> insert into enumtesting(id) values(5);
    Query OK, 1 row affected (0.11 sec)

    mysql> Select * from enumtesting;
    +---------+----+
    | e_value | id |
    +---------+----+
    | 1 | 1 |
    | | 2 |
    | | 3 |
    | | 4 |
    | 1 | 5 |
    +---------+----+
    5 rows in set (0.00 sec)

    mysql> select e_value, e_value+0 AS enum_index, id from enumtetsing;
    +---------+------------+----+
    | e_value | enum_index | id |
    +---------+------------+----+
    | 1 | 2 | 1|
    | | 0 | 2|
    | | 0 | 3|
    | | 0 | 4|
    | 1 | 2 | 5|
    +---------+------------+----+
    5 rows in set (0.00 sec)

    登录后复制

    以上就是MySQL ENUM 数据类型有哪些不同的属性?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    Oracle如何使用授予和撤销权限的语法和示例
    Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
    下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
    社区版oceanbase安装
    Oracle 导出CSV工具-sqluldr2
    ETL数据集成丨快速将MySQL数据迁移至Doris数据库

    发布评论