Cabaran:
Fail data CSV selalunya mengandungi medan kosong, yang boleh bermasalah apabila memuatkannya ke dalam jadual MySQL yang ditakrifkan dengan lajur NULLABLE. Secara lalai, MySQL memberikan sifar (0) kepada medan kosong, walaupun apabila lalai lajur adalah NULL. Ini boleh menyebabkan kekeliruan apabila cuba membezakan antara nilai NULL dan sifar.
Penyelesaian:
Untuk memastikan medan kosong ditafsirkan sebagai nilai NULL semasa pemuatan data, pertimbangkan menggunakan kaedah berikut:
Ubah suai kenyataan LOAD DATA INFILE untuk membaca medan kosong ke dalam pembolehubah tempatan (@vfour) dan kemudian tetapkan nilai medan sebenar kepada NULL jika pembolehubah tempatan kosong.
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" (one, two, three, @vfour, five) SET four = NULLIF(@vfour,'') ;
Ini memastikan bahawa medan kosong dalam fail CSV ditafsirkan sebagai NULL dalam MySQL jadual.
Jika semua medan dalam fail CSV mungkin kosong, gunakan berbilang penyata SET untuk tetapkan nilai NULL kepada medan kosong.
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" (@vone, @vtwo, @vthree, @vfour, @vfive) SET one = NULLIF(@vone,''), two = NULLIF(@vtwo,''), three = NULLIF(@vthree,''), four = NULLIF(@vfour,'') ;
Pendekatan ini membenarkan pengendalian kosong secara eksplisit medan dan memastikan bahawa ia ditafsirkan sebagai nilai NULL.
Dengan menggunakan kaedah ini, anda boleh memuatkan nilai NULL daripada data CSV dengan berkesan ke dalam jadual MySQL, menyelesaikan isu salah tafsir medan kosong sebagai nilai sifar.
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Nilai NULL dengan Betul dari Fail CSV ke dalam Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!