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

จะแทรกลงในสองตารางโดยใช้แบบสอบถาม MySQL เดียวได้อย่างไร


คุณสามารถใช้กระบวนงานที่เก็บไว้เพื่อแทรกลงในสองตารางในแบบสอบถามเดียว ให้เราสร้างตารางก่อน -

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 วินาที)