だから、MySQLを学ぼうとしてデータベースをいじっています。データベースを作成するスクリプトをまとめましたが、データを一括入力しようとはしていません。日時とタイムスタンプのフィールドを除いて、すべて問題ないようです。
これが私が問題を抱えているテーブルです:
DROP TABLE IF EXISTS TestMsgs;
CREATE TABLE TestMsgs (
msg_id int NOT NULL AUTO_INCREMENT,
user_id int,
content varchar(200),
time_submitted datetime,
last_update timestamp,
PRIMARY KEY (msg_id)
) ENGINE=INNODB;
そのため、レコードが追加されたときに日時を手動で設定し、レコードが更新されるたびにタイムスタンプを自動更新したいと考えています。
次のデータをバッチ入力しようとすると:
LOAD DATA LOCAL INFILE "testmsgs.txt" REPLACE INTO TABLE TestMsgs
FIELDS TERMINATED BY '|' (user_id, content, time_submitted);
content of testmsgs.txt:
1|test1|10/22/2013 10:30
1|test2|10/22/2013 10:31
1|test3|10/22/2013 10:32
次の結果が得られます。
+----------+---------+---------+---------------------+-------------+
| msg_id | user_id | content | time_submitted | last_update |
+----------+---------+---------+---------------------+-------------+
| 1 | 1 | test1 | 0000-00-00 00:00:00 | NULL |
| 2 | 1 | test2 | 0000-00-00 00:00:00 | NULL |
| 3 | 1 | test3 | 0000-00-00 00:00:00 | NULL |
+----------+---------+---------+---------------------+-------------+
何を与える?これを行う適切な方法は何ですか?