1
我已经具有这样定义的列的表:MySQL的LOAD DATA LOCAL INFILE与缺省时间戳列值
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+-------------------+----------------+
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | |
和我插入使用这个命令数据:
LOAD DATA LOCAL INFILE '<path_to_the_file>' INTO TABLE my_table FIELDS TERMINATED BY '|' (<some_columns>,created_at,<more_columns>)
从一个文件,其中每一行是这样的:
822202 |网件||||| 1448ce8f-efc5-7b07-6982-1ff991bf967e |||||||| ||| 1
注:created_at是第5列,因此该文件有它没有价值,所以我希望CURRENT_TIMESTAMP
相反,这是我所看到的:
mysql> select distinct created_at from my_table;
+---------------------+
| created_at |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+
1 row in set (0.00 sec)
代码运行该命令应该使用标准JDBC,它是一个jdbc.clj Clojure库。注意2:如果我手动运行INSERT INTO ...查询,它(显然)按预期工作。
任何人都可以告诉我我错过了什么?
你试过从工作台执行查询,查询浏览器, phpmyadmin,o r控制台不使用JDBC? –
好问题;直接来自mysql CLI控制台,它的失败是这样的:错误1148(42000):这个MySQL版本不允许使用命令 – alexakarpov
你使用的是什么MySQL版本? –