Rumah > Artikel > pangkalan data > Apa yang perlu dilakukan jika data beban mysql bercelaru?
Penyelesaian kepada data beban mysql yang kacau: 1. Cari pernyataan SQL dengan aksara yang kacau; 2. Ubah suai pernyataan kepada "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE character set utf8;".
Persekitaran pengendalian tutorial ini: sistem Windows 10, MySQL versi 5.7, komputer Dell G3.
Apakah yang perlu saya lakukan jika data pemuatan mysql bercelaru?
Selesaikan masalah data Cina bercelaru yang diimport ke MySQL menggunakan LOAD
Andaikan data dalam teks employee.txt diimport ke dalam jadual PEKERJA
Garbled SQL kenyataan muncul
LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE;
Penyelesaian, tambah set aksara utf8
LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE character set utf8;
Peluasan berkaitan:
1. Gunakan pernyataan beban untuk mengimport data
Di sini Ringkasan ringkas arahan muat.
Selepas memasukkan MySQL, gunakan arahan:
load data local infile 'S:/tab_user.txt' into table tab_user lines terminated by '\r\n' ignore 1 lines;
Sintaks pernyataan ini adalah seperti berikut:
Sintaks asas:
load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'\' ]] [lines terminated by'n'] [ignore number lines] [(col_name, )]
Penjelasan bahagian sintaks:
Pernyataan dalam fail data beban dibaca daripada fail teks ke dalam jadual pada kelajuan yang sangat tinggi. Sebelum menggunakan arahan ini, proses mysqld (perkhidmatan) mesti dijalankan.
Atas sebab keselamatan, apabila membaca fail teks yang terletak pada pelayan, fail tersebut mesti berada dalam direktori pangkalan data atau boleh dibaca oleh semua orang.
Selain itu, untuk menggunakan infile data muat pada fail pada pelayan, anda mesti mempunyai kebenaran fail pada hos pelayan.
(1) Jika anda menentukan kata kunci low_priority, maka MySQL akan menunggu sehingga tiada orang lain membaca jadual ini sebelum memasukkan data. Anda boleh menggunakan arahan berikut:
muat data low_priority infile "S:/tab_user.txt" ke dalam table tab_user
2) Jika anda menentukan kata kunci setempat, ini bermakna membaca fail dari hos pelanggan. Jika setempat tidak dinyatakan, fail mesti terletak pada pelayan.
(3), ganti dan abaikan kata kunci mengawal pemprosesan penduaan rekod kunci unik sedia ada. Jika anda menentukan ganti, baris baharu akan menggantikan baris sedia ada dengan nilai kunci unik yang sama. Jika anda menentukan abaikan, input baris pendua untuk baris sedia ada dengan kunci unik dilangkau. Jika anda tidak menentukan mana-mana pilihan, ralat berlaku apabila kunci pendua ditemui, dan baki fail teks diabaikan. Contohnya:
muat data low_priority infile "S:/tab_user.txt" gantikan
ke dalam table tab_user;
(4), pemisah
( a) Kata kunci medan menentukan format pemisahan segmen fail Jika kata kunci ini digunakan, penghurai MySQL berharap untuk melihat sekurang-kurangnya satu daripada pilihan berikut:
ditamatkan oleh pembatas: apakah aksara yang dimaksudkan sebagai pembatas
dilampirkan oleh aksara tertutup medan
dilepaskan oleh aksara pelarian
ditamatkan oleh aksara pembatas yang menerangkan medan, secara lalai aksara tab (t)
dilampirkan dengan menerangkan watak kurungan medan.
melarikan diri dengan watak melarikan diri yang diterangkan. Lalainya ialah garis miring ke belakang (slash terbalik: )
Contohnya: muatkan data dalam fail "S:/tab_user.txt" ganti ke dalam jadual tab_user (id, nama) ditamatkan oleh',' abaikan 1 baris;(, sebagai Pembatas )
(b) kata kunci baris menentukan pembatas setiap rekod, lalai ialah 'n', iaitu aksara baris baharu
Jika kedua-dua medan dinyatakan, medan mestilah dalam baris Sebelum . Jika anda tidak menentukan kata kunci medan, nilai lalai adalah sama seperti jika anda menulis: medan ditamatkan oleh 't' yang dilampirkan oleh ' '' ' terlepas oleh '\'
Jika anda tidak menentukan baris klausa, Nilai lalai adalah sama seperti jika anda menulis: baris ditamatkan oleh 'n'
Contohnya: muatkan data dalam fail "s:/tab_user.txt" ganti ke dalam medan ujian jadual ditamatkan dengan baris ',' ditamatkan oleh '/ n';
(5), memuatkan data infile boleh mengimport fail ke dalam pangkalan data mengikut lajur yang ditentukan. Apabila kita ingin mengimport sebahagian daripada data, kita perlu menambah beberapa lajur (lajur/medan/medan) ke pangkalan data MySQL untuk memenuhi beberapa keperluan tambahan. Sebagai contoh, apabila kita ingin menaik taraf daripada pangkalan data Access kepada pangkalan data MySQL
Contoh berikut menunjukkan cara mengimport data ke dalam lajur (medan) tertentu:
muat data dalam fail "s: / tab_user.txt" ke dalam jadual tab_user(id, name);
(6). Apabila mencari fail pada hos pelayan, pelayan menggunakan peraturan berikut:
(a) Jika nama laluan mutlak yang digunakan oleh pelayan.
(b) Jika nama laluan relatif dengan satu atau lebih komponen terdahulu diberikan, pelayan mencari fail berkenaan dengan direktori data pelayan.
(c) Jika nama fail tanpa awalan diberikan, pelayan mencari fail dalam direktori pangkalan data pangkalan data semasa.
Contohnya: Fail yang diberikan sebagai "/myfile txt" dibaca daripada direktori data pelayan, manakala fail yang diberi sebagai "myfile txt" dibaca daripada direktori pangkalan data pangkalan data semasa
Pembelajaran yang disyorkan: "Tutorial Video MySQL"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika data beban mysql bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!