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

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)其它相关文章!

    上一篇 如何修改MySQL表中列的大小?
    下一篇 我们如何从MySQL表中删除单行数据?