Heim  >  Artikel  >  Datenbank  >  Was sind die unterschiedlichen Eigenschaften des MySQL ENUM-Datentyps?

Was sind die unterschiedlichen Eigenschaften des MySQL ENUM-Datentyps?

WBOY
WBOYnach vorne
2023-08-28 12:17:021139Durchsuche

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

MySQL-ENUM-Typen können mit den folgenden Eigenschaften definiert werden, die sich auf die zulässigen Werte auswirken –

  • NOT NULL – In ENUM-Typen sind standardmäßig NULL-Werte zulässig. Um NULL-Werte zu deaktivieren, müssen wir bei der Beschreibung der ENUM-Spalte das Attribut NOT NULL verwenden.
  • NULL – Das NULL-Attribut ist ein Synonym für DEFAULT NULL. Der Indexwert von NULL ist NULL.
  • DEFAULT – Das DEFAULT-Attribut bewirkt, dass der ENUM-Datentyp einen Standardwert hat, wenn kein Wert angegeben ist. Mit anderen Worten können wir sagen, dass die INSERT-Anweisung den Wert des Feldes nicht enthalten muss, denn wenn dies nicht der Fall ist, wird der Wert nach DEFAULT eingefügt. DEFAULT-Funktionen sind in Ausdrücken nicht zulässig. Für den ENUM-Datentyp umfassen die DEFAULT-Werte NULL und die leere Zeichenfolge ('').

Beispiel

Das folgende Beispiel demonstriert die Verwendung dieser Eigenschaften mit dem ENUM-Datentyp.

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)

Das obige ist der detaillierte Inhalt vonWas sind die unterschiedlichen Eigenschaften des MySQL ENUM-Datentyps?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen