การประมวลผลแบบกลุ่มเป็นวิธีการรันโปรแกรม mysql แบบไม่โต้ตอบ และคุณยังคงใช้คำสั่งเดียวกับที่คุณใช้ใน mysql การประมวลผลแบบกลุ่มเป็นวิธีการรันโปรแกรม mysql แบบไม่โต้ตอบ และคุณยังคงใช้คำสั่งเดียวกับที่คุณใช้ใน mysql
เพื่อดำเนินการประมวลผลแบบแบตช์ คุณต้องเปลี่ยนเส้นทางไฟล์ไปยังโปรแกรม mysql ขั้นแรกเราจำเป็นต้องมีไฟล์ข้อความนี้มีข้อความเดียวกับคำสั่งที่เราป้อนใน mysql
เช่น หากเราต้องการแทรกข้อมูลบางส่วน ให้ใช้ไฟล์ที่มีข้อความต่อไปนี้ (ชื่อไฟล์คือ New_Data.sql แน่นอนว่าเราสามารถตั้งชื่อเป็น New_Data.txt หรือชื่อตามกฎหมายอื่นก็ได้ และไม่จำเป็นต้องลงท้ายด้วย ด้วยคำต่อท้าย sql):
ใช้ Meet_A_Geek;
แทรกลงในลูกค้า (Customer_ID, Last_Name) ค่า (NULL, "บล็อก");
แทรกลงในลูกค้า (Customer_ID, Last_Name) ค่า (NULL, "นิวตัน");
แทรกลงในลูกค้า (Customer_ID, Last_Name) ค่า (NULL, "Simmons");
โปรดทราบว่าประโยคข้างต้นจะต้องมีความถูกต้องตามหลักไวยากรณ์ และแต่ละประโยคจะต้องลงท้ายด้วยเครื่องหมายอัฒภาค คำสั่ง USE ด้านบนเลือกฐานข้อมูล และคำสั่ง INSERT จะแทรกข้อมูล
ต่อไปเราจำเป็นต้องนำเข้าไฟล์ข้างต้นลงในฐานข้อมูล ก่อนที่จะนำเข้า เราต้องยืนยันว่าฐานข้อมูลกำลังทำงานอยู่ นั่นคือกระบวนการ mysqld (หรือบริการที่เรียกว่า "บริการ" ภายใต้ Windows NT "กระบวนการ" ภายใต้ Unix) คือ ทำงานแล้ว
จากนั้นรันคำสั่งต่อไปนี้:
bin/mysql –p < /home/mark/New_Data.sql
จากนั้นป้อนรหัสผ่านตามที่ได้รับแจ้ง หากไม่มีข้อผิดพลาดในคำสั่งในไฟล์ด้านบน ข้อมูลจะถูกนำเข้าไปยังฐานข้อมูล
ใช้ LOAD DATA INFILE บนบรรทัดคำสั่งเพื่อนำเข้าข้อมูลจากไฟล์ไปยังฐานข้อมูล:
ตอนนี้คุณอาจถามตัวเองว่า "ทำไมฉันถึงพิมพ์คำสั่ง SQL ทั้งหมดนี้ลงในไฟล์แล้วรันผ่านโปรแกรม?"
นี่อาจดูเหมือนเป็นงานมาก คุณอาจจะพูดถูกเมื่อคุณคิดเช่นนั้น แต่ถ้าคุณมีบันทึกบันทึกจากคำสั่งเหล่านี้ทั้งหมดล่ะ? ตอนนี้เป็นเรื่องดี ฐานข้อมูลส่วนใหญ่จะสร้างบันทึกเหตุการณ์ที่บันทึกไว้ในฐานข้อมูลโดยอัตโนมัติ บันทึกส่วนใหญ่มีคำสั่ง SQL ดั้งเดิมที่ใช้งานอยู่ ดังนั้น หากคุณไม่สามารถส่งออกข้อมูลจากฐานข้อมูลปัจจุบันของคุณไปยังฐานข้อมูล mysql ใหม่ คุณสามารถใช้บันทึกและคุณสมบัติการประมวลผลแบบกลุ่มของ mysql เพื่อนำเข้าข้อมูลของคุณได้อย่างรวดเร็วและง่ายดาย แน่นอนว่าวิธีนี้ช่วยให้คุณไม่ต้องยุ่งยากในการพิมพ์
โหลดข้อมูลเข้าแฟ้ม
นี่เป็นวิธีสุดท้ายที่เราจะแนะนำในการนำเข้าข้อมูลไปยังฐานข้อมูล MySQL คำสั่งนี้คล้ายกับ mysqlimport มาก แต่วิธีนี้สามารถใช้ได้บนบรรทัดคำสั่ง mysql ซึ่งหมายความว่าคุณสามารถใช้คำสั่งนี้ในทุกโปรแกรมที่ใช้ API เมื่อใช้วิธีการนี้ คุณสามารถนำเข้าข้อมูลที่คุณต้องการนำเข้าไปยังแอปพลิเคชันของคุณได้
ก่อนที่จะใช้คำสั่งนี้ กระบวนการ mysqld (บริการ) จะต้องทำงานอยู่
เริ่มบรรทัดคำสั่ง mysql:
bin/mysql –p
ป้อนรหัสผ่านตามที่ได้รับแจ้ง หลังจากเข้าสู่บรรทัดคำสั่ง mysql สำเร็จ ให้ป้อนคำสั่งต่อไปนี้:
ใช้ Meet_A_Geek;
โหลดข้อมูล INFILE "/home/mark/data.sql" ลงในคำสั่งตาราง;
พูดง่ายๆ ก็คือจะนำเข้าเนื้อหาของไฟล์ data.sql ลงในตาราง Order เช่นเดียวกับเครื่องมือ mysqlimport คำสั่งนี้ยังมีพารามิเตอร์ทางเลือกบางอย่างอีกด้วย ตัวอย่างเช่น หากคุณต้องการนำเข้าข้อมูลจากคอมพิวเตอร์ของคุณเองไปยังเซิร์ฟเวอร์ฐานข้อมูลระยะไกล คุณสามารถใช้คำสั่งต่อไปนี้:
โหลดข้อมูลในเครื่อง INFILE "C:MyDocsSQL.txt" ลงในคำสั่งซื้อของตาราง
พารามิเตอร์ LOCAL ด้านบนระบุว่าไฟล์นั้นเป็นไฟล์ในเครื่องและเซิร์ฟเวอร์คือเซิร์ฟเวอร์ที่คุณเข้าสู่ระบบ ซึ่งช่วยลดความจำเป็นในการใช้ ftp ในการอัพโหลดไฟล์ไปยังเซิร์ฟเวอร์ MySQL จะช่วยคุณเอง
คุณยังสามารถกำหนดลำดับความสำคัญของคำสั่ง insert ได้ หากคุณต้องการทำเครื่องหมายว่ามีลำดับความสำคัญต่ำ (LOW_PRIORITY) MySQL จะรอจนกว่าจะไม่มีใครอ่านตารางก่อนจึงจะแทรกข้อมูล คุณสามารถใช้คำสั่งต่อไปนี้:
โหลดข้อมูล LOW_PRIORITY INFILE "/home/mark/data.sql" ลงในคำสั่งตาราง;
คุณยังสามารถระบุได้ว่าจะแทนที่หรือละเว้นค่าคีย์ที่ซ้ำกันในไฟล์และตารางเมื่อแทรกข้อมูล ไวยากรณ์สำหรับการแทนที่ค่าคีย์ที่ซ้ำกัน:
โหลดข้อมูล LOW_PRIORITY INFILE "/home/mark/data.sql" แทนที่ลงในคำสั่งซื้อของตาราง
ประโยคข้างต้นอาจดูเทอะทะเล็กน้อย แต่จะทำให้คำหลักอยู่ในตำแหน่งที่ผู้สร้างโปรไฟล์ของคุณสามารถเข้าใจได้
คู่ตัวเลือกต่อไปนี้จะอธิบายรูปแบบการบันทึกไฟล์ พวกเขาดูแตกต่างออกไปเล็กน้อยที่นี่ ขั้นแรก ต้องใช้คีย์เวิร์ด FIELDS หากใช้คีย์เวิร์ดนี้ ตัวสร้างโปรไฟล์ MySQL หวังว่าจะเห็นตัวเลือกต่อไปนี้อย่างน้อยหนึ่งรายการ:
สิ้นสุดด้วยตัวละคร
ล้อมรอบไปด้วยตัวละคร
หลบหนีไปตามตัวละคร
คำหลักเหล่านี้และพารามิเตอร์ถูกใช้เหมือนกับใน mysqlimport
TERMINATED BY อธิบายอักขระตัวคั่นของฟิลด์ ซึ่งเป็นอักขระแท็บ (t) ตามค่าเริ่มต้น
ENCLOSED BY อธิบายอักขระวงเล็บเหลี่ยมของฟิลด์ ตัวอย่างเช่น ล้อมแต่ละฟิลด์ด้วยเครื่องหมายคำพูด
อักขระหลีกที่อธิบายโดย ESCAPED BY ค่าเริ่มต้นคือแบ็กสแลช: )
ต่อไปนี้ยังคงใช้ตัวอย่างคำสั่ง mysqlimport ก่อนหน้านี้ และใช้คำสั่ง LOAD DATA INFILE เพื่อนำเข้าไฟล์เดียวกันลงในฐานข้อมูล:
โหลดข้อมูล INFILE "/home/mark/Orders.txt" แทนที่ลงในตารางคำสั่งซื้อฟิลด์ที่สิ้นสุดโดย ',' ปิดล้อมโดย '"';
มีคุณลักษณะในคำสั่ง LOAD DATA INFILE ที่ไม่มีอยู่ในเครื่องมือ mysqlimport:
LOAD DATA INFILE สามารถนำเข้าไฟล์เข้าสู่ฐานข้อมูลตามคอลัมน์ที่ระบุ
คุณลักษณะนี้มีความสำคัญมากเมื่อเราต้องการนำเข้าข้อมูลบางส่วน ตัวอย่างเช่น เมื่อเราอัปเกรดจากฐานข้อมูล Access เป็นฐานข้อมูล MySQL เราจำเป็นต้องเพิ่มบางคอลัมน์ (คอลัมน์/ฟิลด์/ฟิลด์) ลงในฐานข้อมูล MySQL เพื่อตอบสนองความต้องการเพิ่มเติมบางอย่าง
ในขณะนี้ ข้อมูลในฐานข้อมูล Access ของเรายังคงมีอยู่ แต่เนื่องจากช่องของข้อมูลเหล่านี้ไม่ตรงกับข้อมูลใน MySQL อีกต่อไป เครื่องมือ mysqlimport จึงไม่สามารถใช้งานได้อีกต่อไป อย่างไรก็ตาม เรายังคงสามารถใช้ LOAD DATA INFILE ได้ ตัวอย่างต่อไปนี้แสดงวิธีการนำเข้าข้อมูลลงในฟิลด์ที่ระบุ:
โหลดข้อมูล INFILE "/home/Order.txt" ลงในตาราง คำสั่งซื้อ (Order_Number, Order_Date, Customer_ID);
อย่างที่คุณเห็น เราสามารถระบุฟิลด์ที่จำเป็นได้ ช่องที่ระบุเหล่านี้ยังคงอยู่ในวงเล็บและคั่นด้วยเครื่องหมายจุลภาค หากคุณพลาดช่องใดช่องหนึ่ง MySQL จะเตือนคุณ