Pemrosesan batch adalah cara non-interaktif dalam menjalankan program mysql, dan Anda masih akan menggunakan perintah yang sama seperti yang Anda lakukan di mysql. Pemrosesan batch adalah cara non-interaktif dalam menjalankan program mysql, dan Anda masih akan menggunakan perintah yang sama seperti yang Anda lakukan di mysql.
Untuk mengimplementasikan pemrosesan batch, Anda mengarahkan file ke program mysql. Pertama kita memerlukan file teks. File teks ini berisi teks yang sama dengan perintah yang kita masukkan di mysql.
Misal kita ingin memasukkan beberapa data, gunakan file yang berisi teks berikut (nama filenya New_Data.sql, tentunya kita juga bisa menamainya New_Data.txt atau nama resmi lainnya, dan tidak harus diakhiri. dengan akhiran sql):
GUNAKAN Meet_A_Geek;
INSERT INTO Customer (Customer_ID, Last_Name) VALUES(NULL, "Block");
INSERT INTO Pelanggan (ID_Pelanggan, Nama_Belakang) NILAI(NULL, "Newton");
INSERT INTO Customer (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
Perhatikan bahwa kalimat di atas harus benar secara tata bahasa dan setiap kalimat harus diakhiri dengan titik koma. Perintah USE di atas memilih database, dan perintah INSERT menyisipkan data.
Selanjutnya kita perlu mengimpor file di atas ke database. Sebelum mengimpor, kita harus memastikan bahwa database sudah berjalan, yaitu proses mysqld (atau layanan, disebut "layanan" di Windows NT, "proses" di Unix) adalah sudah berjalan.
Kemudian jalankan perintah berikut:
bin/mysql –p < /home/mark/New_Data.sql
Kemudian masukkan password sesuai yang diminta. Jika tidak ada kesalahan pada pernyataan pada file di atas, maka data akan diimpor ke database.
Gunakan LOAD DATA INFILE pada baris perintah untuk mengimpor data dari file ke database:
Sekarang Anda mungkin bertanya pada diri sendiri, "Mengapa saya mengetikkan semua pernyataan SQL ini ke dalam sebuah file dan kemudian menjalankannya melalui sebuah program?"
Ini mungkin tampak seperti banyak pekerjaan. Ya, Anda mungkin benar jika berpikir demikian. Namun bagaimana jika Anda memiliki catatan log dari semua perintah ini? Ini bagus, sebagian besar database akan secara otomatis menghasilkan log peristiwa yang dicatat dalam database. Sebagian besar log berisi perintah SQL asli yang telah digunakan. Oleh karena itu, jika Anda tidak dapat mengekspor data dari database Anda saat ini ke database mysql baru, Anda dapat menggunakan fitur pemrosesan batch log dan mysql untuk mengimpor data Anda dengan cepat dan mudah. Tentu saja, ini menyelamatkan Anda dari kesulitan mengetik.
BEBAN INFILE DATA
Ini adalah metode terakhir yang akan kami perkenalkan untuk mengimpor data ke database MySQL. Perintah ini sangat mirip dengan mysqlimport, tetapi metode ini dapat digunakan pada baris perintah mysql. Artinya Anda bisa menggunakan perintah ini di semua program yang menggunakan API. Dengan menggunakan metode ini, Anda dapat mengimpor data yang ingin Anda impor ke dalam aplikasi Anda.
Sebelum menggunakan perintah ini, proses (layanan) mysqld harus berjalan.
Mulai baris perintah mysql:
bin/mysql –p
Masukkan password sesuai yang diminta. Setelah berhasil masuk ke baris perintah mysql, masukkan perintah berikut:
GUNAKAN Meet_A_Geek;
LOAD DATA INFILE "/home/mark/data.sql" KE TABEL Pesanan;
Sederhananya, ini akan mengimpor isi file data.sql ke dalam tabel Pesanan. Seperti alat mysqlimport, perintah ini juga memiliki beberapa parameter opsional. Misalnya, jika Anda perlu mengimpor data dari komputer Anda sendiri ke server database jarak jauh, Anda dapat menggunakan perintah berikut:
LOAD DATA LOCAL INFILE "C:MyDocsSQL.txt" KE DALAM TABEL Pesanan;
Parameter LOCAL di atas menunjukkan bahwa file tersebut adalah file lokal dan server adalah server tempat Anda login. Ini menghilangkan kebutuhan untuk menggunakan ftp untuk mengunggah file ke server, MySQL melakukannya untuk Anda.
Anda juga dapat mengatur prioritas pernyataan penyisipan. Jika Anda ingin menandainya sebagai prioritas rendah (LOW_PRIORITY), maka MySQL akan menunggu hingga tidak ada orang lain yang membaca tabel sebelum memasukkan data. Anda dapat menggunakan perintah berikut:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" KE TABEL Pesanan;
Anda juga dapat menentukan apakah akan mengganti atau mengabaikan nilai kunci duplikat dalam file dan tabel saat memasukkan data. Sintaks untuk mengganti nilai kunci duplikat:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Pesanan;
Kalimat di atas mungkin tampak agak kikuk, namun menempatkan kata kunci di tempat yang dapat dipahami oleh profiler Anda.
Sepasang opsi berikut menjelaskan format perekaman file. Opsi ini juga tersedia di alat mysqlimport. Mereka terlihat sedikit berbeda di sini. Pertama, kata kunci FIELDS harus digunakan. Jika kata kunci ini digunakan, profiler MySQL berharap untuk melihat setidaknya satu dari opsi berikut:
DIHENTIKAN OLEH karakter
TERTUTUP OLEH karakter
DILARIKAN OLEH karakter
Kata kunci ini dan parameternya digunakan sama seperti di mysqlimport
TERMINATED BY menjelaskan karakter pemisah bidang, yang merupakan karakter tab (t) secara default.
ENCLOSED BY menjelaskan karakter bracketing pada field. Misalnya, lampirkan setiap bidang dalam tanda kutip.
Karakter pelarian yang dijelaskan oleh ESCAPED BY. Standarnya adalah garis miring terbalik: ).
Berikut ini masih menggunakan contoh perintah mysqlimport sebelumnya dan menggunakan pernyataan LOAD DATA INFILE untuk mengimpor file yang sama ke database:
LOAD DATA INFILE "/home/mark/Orders.txt" GANTI KE TABEL BIDANG Pesanan DIHENTIKAN OLEH ',' TERTUTUP OLEH '"';
Ada fitur dalam pernyataan LOAD DATA INFILE yang tidak tersedia di alat mysqlimport:
LOAD DATA INFILE dapat mengimpor file ke database dengan kolom tertentu.
Fitur ini sangat penting ketika kita ingin mengimpor sebagian data. Misalnya, ketika kita memutakhirkan dari database Access ke database MySQL, kita perlu menambahkan beberapa kolom (kolom/bidang/bidang) ke database MySQL untuk memenuhi beberapa kebutuhan tambahan.
Saat ini, data di database Access kami masih tersedia, namun karena bidang data tersebut tidak lagi cocok dengan yang ada di MySQL, alat mysqlimport tidak dapat digunakan lagi. Meskipun demikian, kita masih dapat menggunakan LOAD DATA INFILE. Contoh berikut menunjukkan cara mengimpor data ke kolom tertentu:
LOAD DATA INFILE "/home/Order.txt" KE TABEL Pesanan(Nomor_Pesanan, Tanggal_Pesanan, ID_Pelanggan);
Seperti yang Anda lihat, kami dapat menentukan bidang yang wajib diisi. Bidang tertentu ini masih diapit tanda kurung dan dipisahkan dengan koma. Jika Anda melewatkan salah satu bidang tersebut, MySQL akan mengingatkan Anda.