คุณต้องใช้ unsigned สำหรับสิ่งนี้เพราะจะไม่อนุญาตให้คุณป้อนตัวเลขติดลบ
ไวยากรณ์มีดังนี้
สร้างตาราง yourTableName( yourColumnName INT UNSIGNED);
เพื่อให้เข้าใจแนวคิด ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้
mysql> สร้างตาราง OnlyPositiveValue -> ( -> ทำเครื่องหมาย int ว่าไม่ได้ลงนาม -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที)
ก่อนแทรกข้อมูลในตาราง ให้ใช้แบบสอบถามด้านล่าง
แบบสอบถามมีดังนี้
mysql> SET @@SESSION.sql_mode ='STRICT_TRANS_TABLES';ตกลง ตกลง 0 แถวได้รับผลกระทบ 1 คำเตือน (0.00 วินาที)
ตอนนี้ ถ้าคุณจะเพิ่มจำนวนลบในคำสั่ง INSERT ข้อผิดพลาดต่อไปนี้จะมองเห็นได้
mysql> แทรกลงในค่า OnlyPositiveValue(-10);ERROR 1264 (22003):อยู่นอกช่วงค่าสำหรับคอลัมน์ 'Marks' ที่แถว 1mysql> แทรกลงในค่า OnlyPositiveValue(-100);ERROR 1264 (22003):ออกจาก ค่าช่วงสำหรับคอลัมน์ 'Marks' ที่แถว 1
ให้เราใส่จำนวนบวก
แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า OnlyPositiveValue (0) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า OnlyPositiveValue (10) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า OnlyPositiveValue ( 100);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.11 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก OnlyPositiveValue;
ต่อไปนี้เป็นผลลัพธ์ที่แสดงจำนวนบวก
<ก่อนหน้า>+-------+| เครื่องหมาย |+-------+| 0 || 10 || 100 |+-------+3 แถวในชุด (0.00 วินาที)