StepCoding

การกำหนดค่า NULL และ NOT NULL ในฟิลด์

อ่าน [3524] หมวดหมู่: คำสั่ง SQL เบื้องต้น

Field ที่ถูกกำหนดให้มีคุณสมบัติเป็น NOT NULL จะไม่สามารถกำหนดค่าให้กับ field นั้น ๆ เป็น NULL ได้ ซึ่งในการกำหนดค่าเหล่านี้นั้นจะมีผลลัพธ์ที่แตกต่างกันขึ้นอยู่กับบริบทที่จะเกิดขึ้น เช่น

  • ในคำสั่ง CREATE TABLE การระบุค่า DEFAULT เป็นค่า NULL แต่เราได้กำหนดให้ field นั้น ๆ มีคุณสมบัติเป็น NOT NULL แล้ว จะทำให้เกิด error ขึ้น และตารางจะไม่ถูกสร้าง
  • การเพิ่มข้อมูลแบบแถวเดียวโดยใช้คำสั่ง INSERT ถ้าเรากำหนดค่า NULL ใส่ใน field ที่มีคุณสมบัติเป็น NOT NULL จะทำให้คำสั่งนั้น ๆ error และข้อมูลจะไม่ถูกเพิ่มเข้าไป
  • การเพิ่มข้อมูลแบบหลาย ๆ แถวโดยใช้คำสั่ง INSERT ถ้าเรากำหนดค่า NULL ใน field ที่มีคุณสมบัติเป็น NOT NULL จะมีผลลัพธ์ดังนี้
    • Field นั้น ๆ จะถูกกำหนดค่าเป็น 0 หรือค่า string ว่าง หรืออาจจะเป็นค่า zero ขึ้นอยู่กับชนิดของ field นั้น ๆ
    • Record จะถูกเพิ่มเข้าไป
    • มีข้อความเตือนให้ทราบ

ในกรณีที่ field นั้น ๆ เป็นชนิด TIMESTAMP หรือ กำหนดให้ field ชนิด INTEGER มีคุณสมบัติเป็น AUTO INCREMENT เมื่อเรากำหนดค่า NULL ไป มันจะไม่เกิด error ขึ้น แต่มันจะเอาค่า timestamp วันและเวลาปัจจุบันไปแทน และเอาค่าตัวเลขตัวถัดไป (ในกรณีเป็น auto increment) มากำหนดให้แทน

ผู้สนับสนุน