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

WBOY
WBOY 转载
2023-08-28 12:17:02 698浏览

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 数据类型有哪些不同的属性?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除