แน่นอนคุณสามารถ.
สิ่งหนึ่งที่ควรสังเกตคือ: INSERT INTO SELECT
คำสั่งคัดลอกข้อมูลจากตารางหนึ่งและแทรกลงในอีกตารางหนึ่งและกำหนดให้ชนิดข้อมูลในตารางต้นทางและเป้าหมายตรงกัน หากประเภทข้อมูลจากคอลัมน์ของตารางได้รับไม่ตรงกับ (คือพยายามที่จะแทรกVARCHAR
เข้าไปในINT
หรือTINYINT
เข้าINT
) MySQL SQL Error (1366)
เซิร์ฟเวอร์จะโยน
ดังนั้นระวัง
นี่คือไวยากรณ์ของคำสั่ง:
INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM table1
WHERE condition;
หมายเหตุด้านข้าง: มีวิธีหลีกเลี่ยงปัญหาการแทรกคอลัมน์ประเภทต่าง ๆ โดยใช้การคัดเลือกนักแสดงในSELECT
ตัวอย่างเช่น:
SELECT CAST('qwerty' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;
การแปลงนี้ ( CAST()
เป็นคำพ้องความหมายCONVERT()
) มีประโยชน์มากหากตารางของคุณมีชุดอักขระที่แตกต่างกันในคอลัมน์ตารางเดียวกัน (ซึ่งอาจนำไปสู่การสูญเสียข้อมูลหากไม่ได้จัดการอย่างเหมาะสม)