Mysql memuat direktori file data

Pernyataan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 membaca baris dari file teks ke dalam tabel dengan kecepatan sangat tinggi. Jika kata kunci
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
8 ditentukan, file dibaca dari host klien. Jika
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
8 tidak ditentukan, file harus berada di server. (
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
8 tersedia di MySQL 3. 22. 6 atau lebih baru. )

Untuk alasan keamanan, saat membaca file teks yang terletak di server, file tersebut harus berada di direktori database atau dapat dibaca oleh semua. Selain itu, untuk menggunakan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_7 pada file server, Anda harus memiliki hak istimewa file pada host server.

Jika Anda menentukan kata kunci

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
_2, eksekusi pernyataan
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
3 ditunda sampai tidak ada klien lain yang membaca dari tabel

Menggunakan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_8 akan sedikit lebih lambat daripada membiarkan server mengakses file secara langsung, karena konten file harus berpindah dari host klien ke host server. Di sisi lain, Anda tidak memerlukan hak istimewa file untuk memuat file lokal

Anda juga dapat memuat file data dengan menggunakan utilitas

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
5; . Opsi
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
_7 menyebabkan
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
5 membaca file data dari host klien. Anda dapat menentukan opsi
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
9 untuk mendapatkan kinerja yang lebih baik melalui jaringan lambat jika klien dan server mendukung protokol terkompresi

Saat mencari file di host server, server menggunakan aturan berikut

  • Jika nama jalur absolut diberikan, server menggunakan nama jalur apa adanya
  • Jika nama jalur relatif dengan satu atau lebih komponen utama diberikan, server mencari file relatif ke direktori data server
  • Jika nama file tanpa komponen utama diberikan, server mencari file di direktori database dari database saat ini

Perhatikan bahwa aturan ini berarti file diberikan sebagai `. /file saya. txt' dibaca dari direktori data server, sedangkan file diberikan sebagai `myfile. txt' dibaca dari direktori database dari database saat ini. Perhatikan juga bahwa untuk pernyataan seperti di bawah ini, file dibaca dari direktori database untuk

LINES TERMINATED BY '\n'
0, bukan
LINES TERMINATED BY '\n'
1

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 

Kata kunci

LINES TERMINATED BY '\n'
_2 dan
LINES TERMINATED BY '\n'
3 mengontrol penanganan catatan input yang menduplikasi catatan yang ada pada nilai kunci unik. Jika Anda menentukan
LINES TERMINATED BY '\n'
_2, baris baru menggantikan baris yang ada yang memiliki nilai kunci unik yang sama. Jika Anda menetapkan
LINES TERMINATED BY '\n'
_3, baris masukan yang menduplikasi baris yang ada pada nilai kunci unik akan dilewati. Jika Anda tidak menentukan salah satu opsi, kesalahan akan terjadi saat nilai kunci duplikat ditemukan, dan sisa file teks diabaikan

Jika Anda memuat data dari file lokal menggunakan kata kunci

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
8, server tidak memiliki cara untuk menghentikan transmisi file di tengah operasi, jadi perilaku defaultnya sama seperti jika
LINES TERMINATED BY '\n'
3 ditentukan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 adalah pelengkap dari
LINES TERMINATED BY '\n'
9. . Untuk menulis data dari database ke file, gunakan
LINES TERMINATED BY '\n'
9. Untuk membaca file kembali ke database, gunakan
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7. Sintaks dari klausa
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
3 dan ________26______4 adalah sama untuk kedua perintah. Kedua klausa bersifat opsional, tetapi
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
_3 harus mendahului
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
4 jika keduanya ditentukan

Jika Anda menentukan klausa

mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
3, masing-masing subklausulnya (
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
8,
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
9 dan
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
0) juga opsional, kecuali bahwa Anda harus menentukan setidaknya salah satu dari mereka

Jika Anda tidak menentukan klausa

mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
_3, defaultnya sama seperti jika Anda telah menulis ini

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'

Jika Anda tidak menentukan klausa

mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
_4, defaultnya sama seperti jika Anda telah menulis ini

LINES TERMINATED BY '\n'

Dengan kata lain, default menyebabkan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 bertindak sebagai berikut saat membaca input

  • Cari batas garis di baris baru
  • Pisahkan garis menjadi bidang di tab
  • Jangan berharap bidang dilampirkan dalam karakter kutipan apa pun
  • Menafsirkan kemunculan tab, baris baru, atau `\' yang didahului oleh `\' sebagai karakter literal yang merupakan bagian dari nilai bidang

Sebaliknya, default menyebabkan

LINES TERMINATED BY '\n'
_9 untuk bertindak sebagai berikut saat menulis keluaran

  • Tulis tab di antara bidang
  • Jangan sertakan bidang dalam karakter kutipan apa pun
  • Gunakan `\' untuk keluar dari instance tab, baris baru, atau `\' yang terjadi di dalam nilai bidang
  • Tulis baris baru di akhir baris

Perhatikan bahwa untuk menulis

mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
5, Anda harus menentukan dua garis miring terbalik agar nilai dibaca sebagai satu garis miring terbalik

Opsi

mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
_6 dapat digunakan untuk mengabaikan tajuk nama kolom di awal file

mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;

Saat Anda menggunakan

LINES TERMINATED BY '\n'
_9 bersamaan dengan
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 untuk menulis data dari database ke dalam file dan kemudian membaca file kembali ke database nanti, opsi penanganan bidang dan baris untuk kedua perintah harus cocok. Jika tidak,
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_7 tidak akan menafsirkan isi file dengan benar. Misalkan Anda menggunakan
LINES TERMINATED BY '\n'
_9 untuk menulis file dengan bidang yang dibatasi oleh koma

mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...

Untuk membaca kembali file yang dibatasi koma, pernyataan yang benar adalah

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';

Sebaliknya, jika Anda mencoba membaca dalam file dengan pernyataan yang ditunjukkan di bawah, itu tidak akan berhasil karena menginstruksikan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 untuk mencari tab di antara bidang

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';

Hasil yang mungkin adalah bahwa setiap jalur masukan akan ditafsirkan sebagai bidang tunggal

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 juga dapat digunakan untuk membaca file yang diperoleh dari sumber eksternal. Misalnya, file dalam format dBASE akan memiliki bidang yang dipisahkan dengan koma dan dilampirkan dalam tanda kutip ganda. Jika baris dalam file diakhiri oleh baris baru, perintah yang ditunjukkan di bawah ini mengilustrasikan opsi penanganan bidang dan baris yang akan Anda gunakan untuk memuat file

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
           FIELDS TERMINATED BY ',' ENCLOSED BY '"'
           LINES TERMINATED BY '\n';

Opsi penanganan bidang atau baris apa pun dapat menentukan string kosong (

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
3). Jika tidak kosong, nilai
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
4 dan
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
5 harus satu karakter. Nilai
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
6 dan
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
7 boleh lebih dari satu karakter. Misalnya, untuk menulis baris yang diakhiri oleh pasangan carriage return-linefeed, atau untuk membaca file yang berisi baris tersebut, tentukan klausa
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
8

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
_4 mengontrol kutipan bidang. Untuk keluaran (
LINES TERMINATED BY '\n'
_9), jika Anda menghilangkan kata
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
1, semua bidang diapit oleh
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
2 karakter. Contoh keluaran tersebut (menggunakan koma sebagai pembatas bidang) ditunjukkan di bawah ini

"1","a string","100.20"
"2","a string containing a , comma","102.20"
"3","a string containing a \" quote","102.20"
"4","a string containing a \", quote and comma","102.20"

Jika Anda menentukan

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
1, karakter
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
2 hanya digunakan untuk menyertakan bidang
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
5 dan
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
6

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
0

Perhatikan bahwa kemunculan karakter

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
_2 dalam nilai bidang diloloskan dengan mengawalinya dengan karakter
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
0. Perhatikan juga bahwa jika Anda menentukan nilai
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
0 kosong, dimungkinkan untuk menghasilkan keluaran yang tidak dapat dibaca dengan benar oleh
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7. Misalnya, keluaran yang baru saja ditampilkan di atas akan muncul seperti yang ditunjukkan di bawah ini jika karakter escape kosong. Perhatikan bahwa kolom kedua di baris keempat berisi koma setelah tanda kutip, yang (secara keliru) muncul untuk mengakhiri kolom

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_1

Untuk masukan, karakter

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
_2, jika ada, dihilangkan dari ujung nilai bidang. (Benar apakah
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
_1 ditentukan atau tidak;
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
1 tidak berpengaruh pada interpretasi masukan. ) Kemunculan
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
2 karakter yang didahului oleh
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...
0 karakter ditafsirkan sebagai bagian dari nilai bidang saat ini. Selain itu, duplikat
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
_2 karakter yang terjadi dalam bidang ditafsirkan sebagai
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';
2 karakter tunggal jika bidang itu sendiri dimulai dengan karakter tersebut. Misalnya, jika
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
           FIELDS TERMINATED BY ',' ENCLOSED BY '"'
           LINES TERMINATED BY '\n';
_8 ditentukan, tanda kutip ditangani seperti yang ditunjukkan di bawah ini

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_2

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
5 mengontrol cara menulis atau membaca karakter khusus. Jika
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
5 karakter tidak kosong, digunakan untuk awalan karakter berikut pada output

  • Karakter
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    _5
  • Karakter
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    _4
  • Karakter pertama dari nilai
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 dan
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    7
  • ASCII
    "1","a string","100.20"
    "2","a string containing a , comma","102.20"
    "3","a string containing a \" quote","102.20"
    "4","a string containing a \", quote and comma","102.20"
    
    _5 (apa yang sebenarnya ditulis setelah karakter escape adalah ASCII
    "1","a string","100.20"
    "2","a string containing a , comma","102.20"
    "3","a string containing a \" quote","102.20"
    "4","a string containing a \", quote and comma","102.20"
    
    6, bukan byte bernilai nol)

Jika

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
5 karakter kosong, tidak ada karakter yang lolos. Mungkin bukan ide yang baik untuk menentukan karakter escape kosong, terutama jika nilai bidang dalam data Anda berisi salah satu karakter dalam daftar yang baru saja diberikan

Untuk input, jika karakter

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';
_5 tidak kosong, kemunculan karakter tersebut dihilangkan dan karakter berikutnya diambil secara harfiah sebagai bagian dari nilai bidang. Pengecualian adalah `0 'atau' N 'yang diloloskan (mis. g. ,
"1","a string","100.20"
"2","a string containing a , comma","102.20"
"3","a string containing a \" quote","102.20"
"4","a string containing a \", quote and comma","102.20"
9 atau
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
00 jika karakter escape adalah `\'). Urutan ini ditafsirkan sebagai ASCII
"1","a string","100.20"
"2","a string containing a , comma","102.20"
"3","a string containing a \" quote","102.20"
"4","a string containing a \", quote and comma","102.20"
5 (byte bernilai nol) dan
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
02. Lihat di bawah untuk aturan tentang
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_02 penanganan

Untuk informasi lebih lanjut tentang sintaks `\'-escape, lihat

Dalam kasus tertentu, opsi penanganan bidang dan garis berinteraksi

  • Jika
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    _7 adalah string kosong dan
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 tidak kosong, baris juga diakhiri dengan
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6
  • Jika nilai
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 dan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 keduanya kosong (
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    3), format baris tetap (tidak dibatasi) digunakan. Dengan format baris tetap, tidak ada pembatas yang digunakan antar bidang. Sebagai gantinya, nilai kolom ditulis dan dibaca menggunakan lebar kolom ``tampilan''. Misalnya, jika kolom dideklarasikan sebagai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    10, nilai untuk kolom ditulis menggunakan bidang 7 karakter. Pada input, nilai kolom diperoleh dengan membaca 7 karakter. Format baris tetap juga memengaruhi penanganan nilai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02; . Perhatikan bahwa format ukuran tetap tidak akan berfungsi jika Anda menggunakan kumpulan karakter multi-byte

Penanganan nilai

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
02 berbeda-beda, bergantung pada opsi
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
3 dan
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
4 yang Anda gunakan

  • Untuk nilai
    mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
    
    3 dan
    mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
    
    4 default,
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 ditulis sebagai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    00 untuk output dan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    00 dibaca sebagai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 untuk input (dengan asumsi karakter
    mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
               FIELDS TERMINATED BY ','
               FROM ...
    
    0 adalah `\')
  • Jika
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 tidak kosong, bidang yang berisi kata literal
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 karena nilainya dibaca sebagai nilai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 (ini berbeda dari kata
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 yang diapit dalam
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 karakter, yang dibaca sebagai string
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    27)
  • Jika
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    _5 kosong,
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 ditulis dengan kata
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02
  • Dengan format baris tetap (yang terjadi ketika
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 dan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 keduanya kosong),
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 ditulis sebagai string kosong. Perhatikan bahwa ini menyebabkan nilai
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    02 dan string kosong dalam tabel tidak dapat dibedakan saat ditulis ke file karena keduanya ditulis sebagai string kosong. Jika Anda harus dapat membedakan keduanya saat membaca file kembali, Anda sebaiknya tidak menggunakan format baris tetap

Beberapa kasus tidak didukung oleh

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7

  • Baris berukuran tetap (
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 dan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 keduanya kosong) dan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    38 atau
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    39 kolom
  • Jika Anda menentukan satu pemisah yang sama dengan atau awalan yang lain,
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    7 tidak akan dapat menginterpretasikan input dengan benar. Misalnya, klausa
    mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
    
    3 berikut akan menyebabkan masalah.
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    _3
  • Jika
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    _5 kosong, nilai bidang yang berisi kemunculan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    08 atau
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    7 diikuti dengan nilai
    mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
               FIELDS TERMINATED BY ',';
    
    6 akan menyebabkan
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    7 berhenti membaca bidang atau baris terlalu dini. Ini terjadi karena
    mysql> USE db1;
    mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
    
    _7 tidak dapat menentukan dengan tepat di mana nilai bidang atau garis berakhir

Contoh berikut memuat semua kolom dari tabel ________0______48

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_4

Tidak ada daftar bidang yang ditentukan, jadi

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 mengharapkan baris input berisi bidang untuk setiap kolom tabel. Nilai default
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
3 dan
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
4 digunakan

Jika Anda ingin memuat hanya beberapa kolom tabel, tentukan daftar bidang

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
5

Anda juga harus menentukan daftar bidang jika urutan bidang dalam file input berbeda dengan urutan kolom dalam tabel. Jika tidak, MySQL tidak dapat mengetahui cara mencocokkan kolom input dengan kolom tabel

Jika sebuah baris memiliki terlalu sedikit bidang, kolom yang tidak memiliki bidang input akan diatur ke nilai default. Penetapan nilai default dijelaskan di

Nilai bidang kosong diinterpretasikan secara berbeda dibandingkan jika nilai bidang tidak ada

  • Untuk tipe string, kolom disetel ke string kosong
  • Untuk tipe numerik, kolom disetel ke
    "1","a string","100.20"
    "2","a string containing a , comma","102.20"
    "3","a string containing a \" quote","102.20"
    "4","a string containing a \", quote and comma","102.20"
    
    5
  • Untuk jenis tanggal dan waktu, kolom disetel ke nilai ``nol'' yang sesuai untuk jenis tersebut.

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_54 kolom hanya diatur ke tanggal dan waktu saat ini jika ada nilai
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
02 untuk kolom, atau (untuk
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
54 kolom pertama saja) jika kolom
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
54 ditinggalkan dari daftar bidang saat daftar bidang ditentukan

Jika baris input memiliki terlalu banyak kolom, kolom tambahan akan diabaikan dan jumlah peringatan akan bertambah

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 menganggap semua input sebagai string, jadi Anda tidak dapat menggunakan nilai numerik untuk
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
59 atau
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
60 kolom seperti yang Anda bisa dengan pernyataan
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
61. Semua nilai
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
59 dan
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
60 harus ditentukan sebagai string

Jika Anda menggunakan C API, Anda bisa mendapatkan informasi tentang kueri dengan memanggil fungsi API

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
64 saat kueri
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 selesai. Format string informasi ditunjukkan di bawah ini

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_6

Peringatan terjadi dalam keadaan yang sama seperti ketika nilai dimasukkan melalui pernyataan

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
61 ( ), kecuali bahwa
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 juga menghasilkan peringatan ketika ada terlalu sedikit atau terlalu banyak bidang di baris masukan. Peringatan tidak disimpan di mana pun; . Jika Anda mendapat peringatan dan ingin tahu persis mengapa Anda mendapatkannya, salah satu cara untuk melakukannya adalah dengan menggunakan
LINES TERMINATED BY '\n'
9 ke dalam file lain dan membandingkannya dengan file input asli Anda

Untuk informasi selengkapnya tentang efisiensi

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
_61 versus
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7 dan mempercepat
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table; 
7, lihat

Bagaimana cara memuat data MySQL infile lokal?

Untuk memuat data dari file ke tabel dengan lancar di MySQL, Anda dapat melalui metode berikut. .
Metode 1. Menggunakan Hevo Data untuk Memuat Data dari File ke Tabel di MySQL
Metode 2. Menggunakan Command-Line dan MySQL Workbench untuk Memuat Data dari File ke Tabel di MySQL
Metode 3. Menggunakan phpMyAdmin untuk Memuat Data dari File ke Tabel di MySQL

Bagaimana cara memuat file data dalam SQL?

LOAD DATA INFILE '/tmp/test. txt' INTO TABLE test ABAIKAN 1 BARIS; . When you use SELECT ... INTO OUTFILE bersamaan dengan LOAD DATA untuk menulis data dari database ke file dan kemudian membaca file kembali ke database nanti , bidang- dan garis .

Bagaimana cara mengimpor data ke MySQL?

Impor File CSV Menggunakan Baris Perintah .
Langkah 1. Akses MySQL Shell. Akses jendela terminal Anda dan masuk ke MySQL menggunakan perintah berikut. mysql –u nama pengguna –p. .
Langkah 2. Buat Tabel MySQL untuk Impor CSV. .
Langkah 3. Impor CSV ke Tabel MySQL

Bagaimana cara memuat data lokal di MySQL Workbench?

Untuk mengimpor file, buka Workbench dan klik + di sebelah opsi koneksi MySQL. Isi kolom dengan informasi koneksi. Setelah terhubung ke database, buka Data Import/Restore. Pilih opsi Impor dari File Mandiri dan pilih file