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

ป้องกันไม่ให้มีค่าเป็นศูนย์ในฟิลด์ MySQL?


ใช้ทริกเกอร์ก่อน INSERT บนตารางเพื่อป้องกันไม่ให้มีค่าเป็นศูนย์ในฟิลด์ MySQL ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable(Value int) ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.85 วินาที)

ให้เราสร้างทริกเกอร์เพื่อป้องกันไม่ให้มีค่าเป็นศูนย์ในฟิลด์ MySQL -

mysql> DELIMITER //mysql> สร้างทริกเกอร์ Prevention_to_insert_zero_value ก่อนแทรกบน DemoTable สำหรับแต่ละแถวจะเริ่มต้น ถ้า (new.Value =0) จากนั้น SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT ='คุณไม่สามารถระบุค่า 0 ได้'; END if;end//Query OK, 0 แถวได้รับผลกระทบ (0.34 วินาที)mysql> DELIMITER;

ให้เราใส่ค่า 0 ลงในตารางแล้วตรวจสอบว่าค่าที่จะใส่เข้าไปหรือไม่ จะไม่อนุญาต -

mysql> แทรกลงในค่า DemoTable(0);ข้อผิดพลาด 1644 (45000):คุณไม่สามารถระบุค่า 0 ได้

ดังนั้น ในตารางด้านบน คุณไม่สามารถแทรกค่า 0 ได้เนื่องจากทริกเกอร์ แต่คุณสามารถแทรกค่าอื่นได้

ให้เราแทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable(10); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable(-1000); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.41 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 10 || -1000 |+-------+2 แถวในชุด (0.00 วินาที)