เราจะสร้างกระบวนงานที่เก็บไว้ซึ่งจะไม่เปลี่ยนค่าตัวแปรทุกครั้งที่มีการอัปเดตค่า
ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, Value int ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.63 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable(Value) (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select :mysql> เลือก *จาก DemoTable;
ผลลัพธ์
<ก่อนหน้า>+----+-------+| รหัส | ความคุ้มค่า |+---+-------+| 1 | 100 |+----+-------+1 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นขั้นตอนการจัดเก็บที่แสดงค่าเก่าหลังจากอัปเดต -
mysql> DELIMITER // mysql> CREATE PROCEDURE updateValue100() เริ่มต้น ประกาศ myValue int; เลือก @myValue :=(เลือกค่าจาก DemoTable โดยที่ Id=1); เลือก @myValue; อัปเดต DemoTable set Value=200 โดยที่ Id=1; เลือก @myValue :=(เลือกค่าจาก DemoTable โดยที่ Id=1); เลือก @myValue; END // แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.21 วินาที) mysql> DELIMITER;
ตอนนี้คุณสามารถเรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่ง CALL -
mysql> โทร updateValue100();