dポイントプレゼントキャンペーン実施中!

お世話になります。
LOAD DATA INFILEで扱うデータでNOW()関数を持たせたいのですが、可能でしょうか?

例えば
"文字列","文字列","文字列",NOW()\n
"文字列","文字列","文字列",NOW()\n

というカンマ区切りのデータですが、実行後、属性datetimeの値が0000-00-00 00:00:00となってしまいます。

宜しくお願いします。

A 回答 (1件)

関数というのは、sql文内に書いて計算させる物です。


loadで読み込むデータは、文字列か数値か、または、カンマが連続すればnull とするのみです。
データの更新日を入れたいなら、カラム型をtimestampにすれば、そのカラムには何も書かなくても、データを読み込んだ日付になりますよ。
更新ではなくて、そのカラムをdatetime型としたいなら、後から、update文で変更するしかないでしょう。
とりあえずそのカラム位置には、何も書かずに読み込んでおいて、
update `tablename` set `datecolumn`=now() where `datecolumn` is null or `datecolumn` = '0000-00-00 00:00:00'
load前に存在するレコードには、全て既に日付が入ってることが前提ですけど。
カラムにnot null 指定されているなら、is null の判定文は不要です。
    • good
    • 0
この回答へのお礼

基本的に無理だったということですね。理解しました。timestampでいこうと思います。ありがとうございました。

お礼日時:2008/10/20 14:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す