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

จะย้ายข้อมูลระหว่างสองตารางที่มีคอลัมน์ในฐานข้อมูล MySQL ต่างกันได้อย่างไร


สำหรับสิ่งนี้ คุณต้องใช้คำสั่ง 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 วินาที)