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

กำลังลบข้อ จำกัด ไม่ใช่ NULL ออกจากคอลัมน์ใน MySQL หรือไม่


หากต้องการลบข้อจำกัด NOT NULL ออกจากคอลัมน์ใน MySQL ให้ใช้คำสั่ง ALTER ไวยากรณ์มีดังนี้:

เปลี่ยนตาราง yourTableName MODIFY COLUMN yourColumnName dataType;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง NotNullDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20) NOT NULL, -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ (0.58 วินาที) 

ในตารางด้านบน หากคุณใส่ค่า NULL ลงในคอลัมน์ 'ชื่อ' แล้ว MySQL จะแสดงข้อผิดพลาดของการจำกัด NOT NULL แบบสอบถามเพื่อแทรกค่า NULL มีดังนี้:

mysql> แทรกลงในค่า NotNullDemo (ชื่อ) (NULL);ข้อผิดพลาด 1048 (23000):คอลัมน์ 'ชื่อ' ไม่สามารถเป็นค่าว่างได้

นี่คือข้อความค้นหาที่จะลบข้อจำกัด NOT NULL ออกจากคอลัมน์ 'ชื่อ':

mysql> แก้ไขตาราง NotNullDemo MODIFY COLUMN ชื่อ varchar(20);ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.78 วินาที)

บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ตอนนี้คุณสามารถแทรกค่า NULL ตามที่คุณเลือก แบบสอบถามเพื่อแทรกระเบียนในตารางที่มีค่า NULL:

mysql> แทรกลงในค่า removeNotNulllDemo(Name) (NULL) ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า removeNotNulllDemo ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า removeNotNulllDemo (ชื่อ) ('Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า removeNotNulllDemo (ชื่อ) (NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า removeNotNulllDemo (ชื่อ) (NULL); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า removeNotNulllDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก removeNotNulllDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+---+------+| รหัส | ชื่อ |+----+------+| 1 | NULL || 2 | แซม || 3 | ไมค์ || 4 | NULL || 5 | NULL || 6 | John |+----+------+6 แถวในชุด (0.00 วินาที)