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

จะสร้าง MySQL Conditional Insert ได้อย่างไร?


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

mysql> สร้างตาราง ConditionalInsertDemo -> ( -> UserId int, -> TotalUser int, -> NumberOfItems int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที)

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

mysql> แทรกลงในค่า ConditionalInsertDemo (101,560,780) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า ConditionalInsertDemo (102,660,890); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า ConditionalInsertDemo ( 103,450,50);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+---------+-----------+--------------+| รหัสผู้ใช้ | TotalUser | Number OfItems |+--------+-----------+---------------------+| 101 | 560 | 780 || 102 | 660 | 890 || 103 | 450 | 50 |+---------+-----------+--------------+3 แถวในชุด (0.00 วินาที)

ตอนนี้คุณมี 3 ระเบียนในตาราง คุณสามารถแทรกระเบียนถัดไปด้วยการแทรกแบบมีเงื่อนไขโดยใช้ตารางคู่ แบบสอบถามแทรกระเบียนในตารางเมื่อใดก็ตามที่ UserId=104 และ NumberOfItems=3500 ต้องไม่มีอยู่ในตารางแล้ว แบบสอบถามแทรกเงื่อนไขมีดังนี้ −

mysql> แทรกลงใน ConditionalInsertDemo(UserId,TotalUser,NumberOfItems) -> เลือก 104,900,3500 จาก dual -> WHERE NOT EXISTS (SELECT * FROM ConditionalInsertDemo -> โดยที่ UserId=104 และ NumberOfItems=3500) แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.18 วินาที) บันทึก:1 รายการซ้ำ:0 คำเตือน:0

ตอนนี้คุณสามารถตรวจสอบตารางว่ามีการแทรกระเบียนหรือไม่ แบบสอบถามเพื่อแสดงระเบียนทั้งหมดมีดังนี้ −

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

ผลลัพธ์

<ก่อนหน้า>+---------+-----------+--------------+| รหัสผู้ใช้ | TotalUser | Number OfItems |+--------+-----------+---------------------+| 101 | 560 | 780 || 102 | 660 | 890 || 103 | 450 | 50 || 104 | 900 | 3500 |+---------+-----------+--------------+4 แถวในชุด (0.00 วินาที)