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

ดำเนินการ INSERT หากตารางว่างเปล่าใน MySQL?


คุณสามารถดำเนินการแทรกหากตารางว่างเปล่าโดยใช้แบบสอบถามย่อย สำหรับสิ่งนั้น ให้ทำงานกับเงื่อนไขไม่มีอยู่ด้วยแบบสอบถามย่อย

ไวยากรณ์ด้านล่างจะทำงานเมื่อตารางของคุณว่างเปล่าเท่านั้น หากตารางของคุณไม่ว่างเปล่า ตารางนั้นจะไม่แทรกระเบียน ไวยากรณ์มีดังนี้:

INSERT INTO yourTableName(yourColumnName)SELECT 'anyValue'WHERE NOT EXISTS (เลือก *จาก yourTableName);

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

mysql> สร้างตาราง ExecuteInsertDemo -> ( -> Name varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (0.67 วินาที)

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

mysql> แทรกลงในค่า ExecuteInsertDemo ('John'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)

สมมุติว่าโต๊ะของเราไม่ว่าง มันมีบันทึกเดียวเท่านั้น หากคุณรันคำสั่ง insert แล้ว MySQL จะไม่ป้อนบันทึกนั้นในตาราง

แบบสอบถามที่จะดำเนินการแทรกมีดังนี้:

mysql> แทรกลงใน ExecuteInsertDemo (ชื่อ) -> เลือก 'Larry' -> ที่ไม่มีอยู่ (เลือก * จาก ExecuteInsertDemo); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0 

แสดงบันทึกโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

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

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

<ก่อนหน้า>+------+| ชื่อ |+------+| John |+------+1 แถวในชุด (0.00 วินาที)

คุณต้องลบบันทึกออกจากตารางเพื่อเรียกใช้แบบสอบถามที่เราเห็นด้านบน ใช้คำสั่งตัดทอน แบบสอบถามมีดังนี้:

mysql> ตัดทอนตาราง ExecuteInsertDemo; Query OK, 0 แถวได้รับผลกระทบ (1.10 วินาที)

เรียกใช้แบบสอบถามด้านบนเพื่อดำเนินการแทรกคำสั่ง แบบสอบถามมีดังนี้:

mysql> แทรกลงใน ExecuteInsertDemo(Name) -> เลือก 'Larry' -> ที่ไม่มีอยู่ (เลือก * จาก ExecuteInsertDemo); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.33 วินาที) บันทึก:1 รายการซ้ำ:0 คำเตือน:0 

แสดงบันทึกจากตารางโดยใช้การเลือก แบบสอบถามมีดังนี้:

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

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

<ก่อนหน้า>+-------+| ชื่อ |+-------+| Larry |+-------+1 แถวในชุด (0.00 วินาที)

ดูเอาต์พุตตัวอย่าง 'Larry' ถูกแทรกสำเร็จเมื่อตารางว่างเปล่า