ไม่จำเป็น เพราะ MySQL จะตั้งค่า Default เป็น NULL ให้อัตโนมัติสำหรับคอลัมน์ที่ไม่มี NOT NULL และไม่ได้ระบุ DEFAULT
ตัวอย่างการสร้างตาราง (ไม่ระบุ DEFAULT NULL)
mysql> create table DemoTable (
FirstName varchar(100) );
Query OK, 0 rows affected (0.57 sec)
เพิ่มข้อมูล (บางแถวไม่ระบุค่า)
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values();
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values();
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.12 sec)
แสดงข้อมูล (ค่าว่างกลายเป็น NULL อัตโนมัติ)
mysql> select * from DemoTable;
+-----------+ | FirstName | +-----------+ | Chris | | NULL | | NULL | | David | +-----------+ 4 rows in set (0.00 sec)
คำอธิบาย:
INSERT INTO DemoTable VALUES()- ไม่ระบุค่า → MySQL ใส่ Default (NULL)INSERT INTO DemoTable (FirstName) VALUES ('Chris')- ระบุค่า → ใช้ค่าที่ให้
เมื่อไหร่ควรระบุ DEFAULT อย่างชัดเจน:
- ต้องการค่า Default อื่น (ไม่ใช่ NULL) เช่น
DEFAULT 'N/A',DEFAULT 0 - เอกสาร hóa (Documentation) ให้ชัดเจน
- Migration scripts ที่ต้องการให้ชัดเจนว่า "ตั้งใจให้เป็น NULL"
สรุป: ไม่ต้องเขียน DEFAULT NULL เพราะเป็นค่าเริ่มต้นแล้ว แต่เขียนก็ไม่ผิด (Explicit is better than implicit)