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

เปลี่ยนคอลัมน์ VARCHAR ให้รับค่า NULL ได้ใน MySQL ด้วย ALTER TABLE CHANGE

ใน MySQL คอลัมน์ VARCHAR โดยค่าเริ่มต้นไม่ได้รับ NULL (Strict mode) หากต้องการอนุญาตให้เก็บ NULL ได้ ให้ใช้ ALTER TABLE ... CHANGE กำหนด NULL DEFAULT NULL

รูปแบบคำสั่ง

ALTER TABLE yourTableName CHANGE yourColumnName yourColumnName datatype NULL DEFAULT NULL;

ตัวอย่างการใช้งาน

สร้างตารางคอลัมน์ VARCHAR (Default NOT NULL):

mysql> create table DemoTable1356 (FirstName varchar(30));

เปลี่ยนให้รับ NULL ได้:

mysql> alter table DemoTable1356 change FirstName FirstName varchar(30) NULL DEFAULT NULL;

เพิ่มข้อมูลทดสอบ (รวม NULL และ Empty):

mysql> insert into DemoTable1356 values('Adam'),('John'),(),('Bob'),(NULL);

ผลลัพธ์ (มี NULL จริง 2 แถว)

+-----------+
| FirstName |
+-----------+
| Adam      |
| John      |
| NULL      |
| Bob       |
| NULL      |
+-----------+

คำอธิบาย:

  • CHANGE old_name new_name datatype ต้องระบุชื่อเดิมและชื่อใหม่ (แม้จะเหมือนกัน)
  • NULL = อนุญาตให้เก็บ NULL ได้
  • DEFAULT NULL = ค่าเริ่มต้นเป็น NULL (หากไม่ระบุค่าใน INSERT)
  • แตกต่างจาก MODIFY ที่ไม่ต้องระบุชื่อคอลัมน์ซ้ำ: ALTER TABLE t MODIFY col varchar(30) NULL DEFAULT NULL;
  • Empty string '' และ NULL แตกต่างกัน INSERT () โดยไม่ระบุค่า จะใช้ Default (NULL)