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

ย้ายแถวจากตารางหนึ่งไปยังอีกตารางหนึ่งใน MySQL หรือไม่


คุณสามารถย้ายแถวจากตารางหนึ่งไปยังอีกตารางหนึ่งโดยใช้คำสั่ง INSERT INTO SELECT

ไวยากรณ์มีดังนี้ −

แทรกลงใน yourDestinationTableName เลือก *จาก yourOriginalTable โดยที่เงื่อนไขบางอย่าง

เพื่อทำความเข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง −

mysql> สร้างตาราง StudentTable −> ( −> Id int, −> Name varchar(100) −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.65 วินาที)

ตอนนี้ฉันจะสร้างตารางที่สอง แบบสอบถามมีดังต่อไปนี้ −

mysql> สร้างตาราง Employee −> ( −> EmployeeId int −> , −> EmployeeName varchar(100) −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)

การแทรกเรคคอร์ดบางส่วนในตาราง Employee แบบสอบถามเพื่อแทรกระเบียนมีดังนี้ -

mysql> แทรกลงในค่า Employee (1,'Carol') แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่าพนักงาน (2, 'John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่าพนักงาน (3,'Johnson'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.11 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางพนักงานด้วยความช่วยเหลือของคำสั่ง SELECT แบบสอบถามมีดังนี้:

mysql> เลือก *จากพนักงาน

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+| รหัสพนักงาน | ชื่อพนักงาน |+--------------------+--------------+| 1 | แครอล || 2 | จอห์น || 3 | Johnson |+------------+-------------+3 แถวในชุด (0.00 วินาที)

ใช้ไวยากรณ์ที่เราพูดถึงในตอนเริ่มต้นเพื่อย้ายแถวในตารางอื่น แบบสอบถามด้านล่างย้ายแถวจากตารางพนักงานไปยัง StudentTable -

mysql> แทรกลงใน StudentTable เลือก *จาก Employee โดยที่ EmployeeId =3 และ EmployeeName ='Johnson'; แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที) บันทึก:1 รายการซ้ำ:0 คำเตือน:0

ตอนนี้คุณสามารถตรวจสอบว่าแถวนั้นมีอยู่ในตารางที่สอง 'StudentTable' หรือไม่ แบบสอบถามมีดังต่อไปนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 3 | Johnson |+------+---------+1 แถวในชุด (0.00 วินาที)

ดูตัวอย่างผลลัพธ์ด้านบน เราได้ย้ายแถวจากตารางหนึ่งไปยังอีกตารางหนึ่ง หากต้องการย้ายแถวทั้งหมด คุณเพียงแค่เอาเงื่อนไข "ที่ไหน" ออก แบบสอบถามมีดังต่อไปนี้ −

mysql> แทรกลงใน StudentTable เลือก *จากพนักงาน ตกลง สืบค้น 3 แถว (0.15 วินาที) บันทึก:3 รายการซ้ำ:0 คำเตือน:0

แบบสอบถามจะแสดงระเบียนที่ปรับปรุงทั้งหมดใน StudentTable -

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 1 | แครอล || 2 | จอห์น || 3 | Johnson |+------+---------+3 แถวในชุด (0.00 วินาที)