[前][次][番号順一覧][スレッド一覧]

mysql:11563

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 14 Jun 2005 18:12:08 +0900
Subject: [mysql 11563] Re: CSVをインポートするときのNULLについて

とみたです。

On Tue, 14 Jun 2005 15:41:15 +0900
hata@xxxxxxxxxx wrote:

>   '山田 太郎',25,NULL,'ほにゃらら'
> の様にNULL値のフィールドに NULL と入っていれば正しく読み込めるのですが
> 使用しているそのRDBからは
>   '山田 太郎',25,,'ほにゃらら'
> の様にNULL値は何も入らない形でしか出力できません。これをMySQL側に正しく
> インポートするにはどうすればいいでしょうか。
> このままだと空文字列として読み込まれてしまいます。

その RDB は、NULL と空文字列を区別してないのでしょうか?
移行元で区別できないのであれば、MySQL 側で区別するのは無理だと思います。

空文字列をすべて NULL として扱って良いのであれば、空文字列を NULL に置
き換えるような簡単なフィルタをかませば良いと思います。

たとえば Ruby だとこんな↓感じ。

ruby -lne 'puts $_.split(/,/,-1).map{|i| i.empty? ? "NULL" : i}.join(",")'

# 「,」を含む文字列のことを考慮してないのでまずいかもしれません。

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

[前][次][番号順一覧][スレッド一覧]

     11561 2005-06-14 15:41 [<hata@xxxxxxxxxx>   ] CSVをインポートするときのNULLについて   
->   11563 2005-06-14 18:12 ┗[とみたまさひろ <tomm]                                       
     11569 2005-06-15 09:17  ┗[<hata@xxxxxxxxxx>   ]                                     
     11570 2005-06-15 10:04   ┗["T.Sasaki" <papasan2]                                   
     11571 2005-06-15 10:37    ┣[Shinichiro Yamamoto ] 検索時に大文字小文字を区別する方法
     11572 2005-06-15 10:46    ┃┗[<numata@xxxxxxxxxx> ]                               
     11573 2005-06-15 11:03    ┃ ┗[Shinichiro Yamamoto ]                             
     11585 2005-06-16 16:15    ┗[<hata@xxxxxxxxxx>   ]