ENUM ใช้กำหนดค่าที่อนุญาตให้เก็บได้ล่วงหน้า มาดูวิธีสร้างและดูค่า ENUM
ไวยากรณ์ ENUM
column_name ENUM('value1', 'value2', ..., 'valueN')
ตัวอย่างสร้างตาราง
mysql> CREATE TABLE EnumDemo (
-> Light INT,
-> IsONOrOff ENUM('ON', 'OFF')
-> );
Query OK, 0 rows affected (1.06 sec)
เพิ่มข้อมูล
mysql> INSERT INTO EnumDemo VALUES (1, 'ON'), (0, 'OFF'); Query OK, 2 rows affected (0.24 sec)
แสดงข้อมูล
mysql> SELECT * FROM EnumDemo;
+-------+-----------+ | Light | IsONOrOff | +-------+-----------+ | 1 | ON | | 0 | OFF | +-------+-----------+
ดู Definition ของ ENUM จาก Schema
SHOW COLUMNS FROM EnumDemo LIKE 'IsONOrOff';
จะแสดง Type เป็น enum('ON','OFF') ในคอลัมน์ Type
ข้อดีของ ENUM: ประหยัดพื้นที่ (เก็บเป็นตัวเลข index) และ Validate ค่าอัตโนมัติ แต่แก้ไขค่า ENUM ต้อง ALTER TABLE ซึ่งล็อกตาราง