目次を開く
CSVのセルが空っぽなら、「値がない」という意味だと思いたくなる。
ところがシステム側では、空欄、空文字、NULLが別物として扱われることがある。
ここを確認せずに顧客台帳や商品データを移行すると、既存値が消えたり、逆に更新されなかったりする。
NULLとは何か
ざっくり言えばNULLは「値が存在しない」という状態。
一方、空文字は「文字列として存在しているが、中身がゼロ文字」という状態だ。
人間の画面ではどちらも空っぽに見える。
コンピューターにとっては同じとは限らない。
CSVにはNULL専用の見た目がない
CSVは単純なテキスト形式なので、空欄をどう解釈するかは読み込む側のシステムに左右される。
空のセルをNULLとして扱うシステムもあれば、空文字として扱うものもある。
文字として「NULL」と書けばNULLになるシステムもあれば、単に四文字の文字列として登録されるものもある。
ここが地味に危険だ。
更新インポートでは特に注意
新規登録なら空欄が空のまま入るだけで済む場合がある。
怖いのは既存データの更新。
たとえば電話番号列が空欄のCSVをアップロードしたとき、
「電話番号を変更しない」
のか、
「既存の電話番号を削除する」
のか。
これはシステムごとに違う。
一括更新の前に仕様を確認しないと、数百件まとめて値を消すこともできる。大量処理は効率的です。事故まで大量になります。
必須項目も別問題
空欄を許可する列と、必須の列も分けて考える。
メールアドレス、商品コード、顧客IDなど、システム側が必須としている列が空なら、行全体がエラーになることもある。
安全な確認方法
本番データを一気に入れず、数件のテストデータで確認する。
特に、
値あり → 空欄
空欄 → 値あり
空欄 → 空欄
のような更新パターンを試すと、システムの挙動が見えやすい。
そして本番前には元データを保存しておく。
最後に
CSVの空欄は、ただの「何もない場所」ではない。
読み込むシステムがどう解釈するかで意味が変わる。
データ移行で空欄を見つけたら、NULLなのか、空文字なのか、更新対象外なのかを確認する。
この小さな確認で、大きな一括削除事故をかなり避けられる。
