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

MySQL Stored Procedure เพื่ออัปเดตบันทึกด้วยเงื่อนไขบางประการ?


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง UPDATE ร่วมกับส่วนคำสั่ง WHERE ใน PROCEDURE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Id int, -> FirstName varchar(20), -> LastName varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (0.56 วินาที)

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

mysql> แทรกลงในค่า DemoTable (101,'David','Brown');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า DemoTable (102,'Chris','Brown');Query ตกลง ได้รับผลกระทบ 1 แถว (0.08 วินาที)mysql> แทรกลงในค่า DemoTable (103,'John','Doe');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.07 วินาที)

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

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

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

<ก่อนหน้า>+------+-----------+----------+| รหัส | ชื่อจริง | นามสกุล |+------+-----------+----------+| 101 | เดวิด | สีน้ำตาล || 102 | คริส | สีน้ำตาล || 103 | จอห์น | Doe |+------+-----------+----------+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อสร้างขั้นตอนการจัดเก็บ-

mysql> ตัวคั่น //mysql> สร้างโพรซีเดอร์ update_sp(fName varchar(20),lName varchar(20)) -> start -> update DemoTable -> set FirstName=fName, -> LastName=lName -> where Id=101; -> end -> //Query OK, 0 แถวได้รับผลกระทบ (0.12 วินาที)mysql> delimiter;

ตอนนี้คุณสามารถเรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่งโทร -

mysql> call update_sp('Adam','Smith');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว คำเตือน 2 ครั้ง (0.08 วินาที)

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

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

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

<ก่อนหน้า>+------+-----------+----------+| รหัส | ชื่อจริง | นามสกุล |+------+-----------+----------+| 101 | อดัม | สมิธ || 102 | คริส | สีน้ำตาล || 103 | จอห์น | Doe |+------+-----------+----------+3 แถวในชุด (0.00 วินาที)