ได้ คุณสามารถใช้กระบวนงานที่เก็บไว้เพื่อแทรกลงในสองตารางในแบบสอบถามเดียว ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable ( StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(20)); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)
นี่คือแบบสอบถามเพื่อสร้างตารางที่สอง -
mysql> สร้างตาราง DemoTable2 ( ClientId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(20), ClientAge int); Query OK, 0 แถวได้รับผลกระทบ (0.76 วินาที)
ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างกระบวนงานที่เก็บไว้เพื่อแทรกลงในสองตารางที่สร้างขึ้นด้านบน -
mysql> DELIMITER // mysql> CREATE PROCEDURE insert_into_twoTables (ชื่อ varchar (100) อายุ int) BEGIN INSERT INTO DemoTable (StudentFirstName) VALUES (ชื่อ); INSERT INTO DemoTable2(ClientName,ClientAge) VALUES(ชื่อ,อายุ); END // แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.14 วินาที) mysql> DELIMITER;
ตอนนี้เรียกกระบวนงานที่เก็บไว้ด้วยความช่วยเหลือของคำสั่ง CALL -
mysql> call insert_into_twoTables('Tom',38);เคียวรีตกลง ได้รับผลกระทบ 1 แถว คำเตือน 1 รายการ (0.41 วินาที)
ตรวจสอบว่าใส่บันทึกลงในตารางทั้งสองหรือไม่
แบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตารางแรกมีดังนี้ −
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----------+-----------+| รหัสนักศึกษา | StudentFirstName |+-------------------------------------------+| 1 | ทอม |+-----------+-------------------------- +1 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตารางที่สอง -
mysql> เลือก *จาก DemoTable2;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----------+-----------+-----------+| รหัสลูกค้า | ชื่อลูกค้า | อายุลูกค้า |+----------+-----------+-----------+| 1 | ทอม | 38 |+----------+--------------------------------------+1 แถวในชุด (0.00 วินาที)