สำหรับสิ่งนี้ คุณต้องใช้คำสั่ง INSERT SELECT ไวยากรณ์มีดังนี้
INSERT INTOyourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N)SELECT yourColumnName1,yourColumnName2,....N FROMyourdatabaseName2.yourTableName2;
ที่นี่ฉันกำลังใช้ฐานข้อมูลสองฐานข้อมูลต่อไปนี้
- ตัวอย่าง
- ทดสอบ
ให้เราสร้างตารางแรกในฐานข้อมูล “ทดสอบ”
mysql> use test;Database changemysql> create table send -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (1.19 วินาที)ก่อน>แทรกบางระเบียนในตารางแรกโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า send(Name) ('John');Query OK, 1 แถวที่ได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงใน send(Name) values('Carol'); Query OK, 1 แถวได้รับผลกระทบ ( 0.40 วินาที)แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
mysql> เลือก *จากการส่งต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | จอห์น || 2 | Carol |+----+-------+2 แถวในชุด (0.00 วินาที)
ตอนนี้สร้างตารางที่สองในฐานข้อมูล "ตัวอย่าง"
<รับ>
mysql> use sample;ฐานข้อมูลเปลี่ยน mysql> สร้างตารางรับ -> ( -> UserId int, -> UserName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.59 วินาที)
ดังที่คุณเห็นด้านบน เราไม่มีบันทึกในตารางที่สอง “รับ”
ให้เราย้ายข้อมูลระหว่าง 2 ตารางที่มีคอลัมน์ต่างกันในฐานข้อมูลที่ต่างกัน แบบสอบถามมีดังนี้
mysql> แทรกลงใน sample.receive(UserId,UserName) -> เลือก Id,Name จาก test.send;Query OK, 2 แถวได้รับผลกระทบ (0.21 วินาที)Records:2 Duplicates:0 Warnings:0
แสดงระเบียนทั้งหมดจากตาราง sample.receive แบบสอบถามมีดังนี้
mysql> เลือก *จากการรับ;
ต่อไปนี้เป็นผลลัพธ์ที่แสดงว่าเราได้ย้ายวันที่จากตารางหนึ่งไปยังอีกตารางหนึ่งในฐานข้อมูลต่างๆ สำเร็จแล้ว
<ก่อนหน้า>+---------+----------+| รหัสผู้ใช้ | ชื่อผู้ใช้ |+---------+----------+| 1 | จอห์น || 2 | Carol |+-------+----------+2 แถวในชุด (0.00 วินาที)