Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

DEFAULT NULL ใน MySQL จำเป็นต้องระบุหรือไม่?

ไม่จำเป็น เพราะ 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)