สำหรับเคียวรี SQL แบบไดนามิกในกระบวนงานที่เก็บไว้ ให้ใช้แนวคิดของ PREPARE STATEMENT ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable2033 -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก -> ชื่อ varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.61 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable2033(ชื่อ) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.85 วินาที) mysql> แทรกลงในค่า DemoTable2033 (ชื่อ) ('Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.19 วินาที) mysql> แทรกลงในค่า DemoTable2033 (ชื่อ) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า DemoTable2033 (ชื่อ) ('ไมค์'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.12 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable2033;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | คริส || 2 | บ๊อบ || 3 | เดวิด || 4 | Mike |+----+-------+4 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างกระบวนงานที่เก็บไว้และใช้ SQL แบบไดนามิก -
mysql> ตัวคั่น //mysql> สร้างโพรซีเดอร์ dynamic_query() -> start -> set @query=concat("select *from DemoTable2033 where Id=3"); -> เตรียม st จาก @query; -> ดำเนินการ st; -> end -> //Query OK, 0 แถวได้รับผลกระทบ (0.13 วินาที)mysql> delimiter;
เรียกขั้นตอนการจัดเก็บ −
mysql> โทร dynamic_query();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 3 | David |+---+-------+1 แถวในชุด (0.04 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.05 วินาที)