Saya memiliki file yang dapat berisi 3 hingga 4 kolom nilai numerik yang dipisahkan oleh koma. Bidang kosong didefinisikan dengan pengecualian ketika mereka berada di akhir baris:
1,2,3,4,5
1,2,3,,5
1,2,3
Tabel berikut dibuat di MySQL:
+ ------- + -------- + ------ + ----- + --------- + ------- + | Bidang | Ketik | Null | Kunci | Default | Ekstra | + ------- + -------- + ------ + ----- + --------- + ------- + | satu | int (1) | YA | | NULL | | | dua | int (1) | YA | | NULL | | | tiga | int (1) | YA | | NULL | | | empat | int (1) | YA | | NULL | | | lima | int (1) | YA | | NULL | | + ------- + -------- + ------ + ----- + --------- + ------- +
Saya mencoba memuat data menggunakan perintah MySQL LOAD:
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS
TERMINATED BY "," LINES TERMINATED BY "\n";
Tabel yang dihasilkan:
+ ------ + ------ + ------- + ------ + ------ + | satu | dua | tiga | empat | lima | + ------ + ------ + ------- + ------ + ------ + | 1 | 2 | 3 | 4 | 5 | | 1 | 2 | 3 | 0 | 5 | | 1 | 2 | 3 | NULL | NULL | + ------ + ------ + ------- + ------ + ------ +
Masalahnya terletak pada kenyataan bahwa ketika suatu bidang kosong dalam data mentah dan tidak didefinisikan, MySQL untuk beberapa alasan tidak menggunakan nilai default kolom (yang NULL) dan menggunakan nol. NULL digunakan dengan benar ketika bidang tersebut hilang sama sekali.
Sayangnya, saya harus dapat membedakan antara NULL dan 0 pada tahap ini sehingga bantuan apa pun akan dihargai.
Terima kasih S.
sunting
Output dari MENUNJUKKAN PERINGATAN:
+ --------- + ------ + -------------------------------- ------------------------ + | Level | Kode | Pesan | + --------- + ------ + -------------------------------- ------------------------ + | Peringatan | 1366 | Nilai integer salah: '' untuk kolom 'empat' di baris 2 | | Peringatan | 1261 | Baris 3 tidak berisi data untuk semua kolom | | Peringatan | 1261 | Baris 3 tidak berisi data untuk semua kolom | + --------- + ------ + -------------------------------- ------------------------ +
LOAD DATA
. Lihat bagian contoh SQL d6tstack tentang perubahan skema data.