Maison  >  Article  >  base de données  >  Quelles sont les différentes propriétés du type de données MySQL ENUM ?

Quelles sont les différentes propriétés du type de données MySQL ENUM ?

WBOY
WBOYavant
2023-08-28 12:17:021140parcourir

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

Les types MySQL ENUM peuvent être définis avec les propriétés suivantes qui affectent les valeurs autorisées -

  • NOT NULL - Dans les types ENUM, les valeurs NULL sont autorisées par défaut. Pour désactiver les valeurs NULL, nous devons utiliser l'attribut NOT NULL lors de la description de la colonne ENUM.
  • NULL - L'attribut NULL est synonyme de DEFAULT NULL. La valeur d'index de NULL est NULL.
  • DEFAULT - L'attribut DEFAULT fait en sorte que le type de données ENUM ait une valeur par défaut lorsqu'aucune valeur n'est spécifiée. En d’autres termes, nous pouvons dire que l’instruction INSERT ne doit pas nécessairement contenir la valeur du champ car si ce n’est pas le cas, la valeur qui suit DEFAULT sera insérée. DEFAULT Les fonctions ne sont pas autorisées dans les expressions. Pour le type de données ENUM, les valeurs DEFAULT incluent NULL et la chaîne vide ('').

Exemple

L'exemple suivant démontrera l'utilisation de ces propriétés avec le type de données 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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer