【问题标题】:auto column insertion during data importing in mysql在mysql中数据导入期间自动插入列
【发布时间】:2017-09-01 05:19:57
【问题描述】:
  • 我在.csv 文件中有五列,我必须将其导入MySQL table
  • 但我还需要在数据库中导入文件的日期。

所以我的意思是今天日期的表格中有六列。

  • 我尝试在default 中使用time stamp 作为datatypeCURRENT_TIMESTAMP

但它发生查询:- Invalid column count in CSV input on line 1.

请指导我。

屏幕截图:-

CSV 文件:-

【问题讨论】:

  • 即使是时间戳,也需要在插入中添加一个空值。表的列和插入查询中的列数应该匹配。
  • 实际上我不使用 mysql 查询,但我只是使用 Wampserver 中的import 菜单导入数据。
  • 也许您应该向我们展示该表的架构。以及用于导入的代码
  • WAMPServer 中没有导入菜单!!你的意思是你正在使用phpMyAdmin 中的IMPORT 菜单,相当于一个表恢复
  • 张贴表格结构和csv列..这将有助于我们更多地了解您的问题

标签: php mysql csv phpmyadmin


【解决方案1】:

这意味着您的 csv 和表格中的列数不同。如果要设置任何列的默认值,则必须将此值保留为空,但必须提及此列。例如:如果您要插入 3 列,其中 1 列具有默认值,名为 'created',您的 csv 文件应如下所示:

请删除描述您的表格结构的第一行。我的意思是不要使用以下内容而不是上述内容:

如果当前时间戳没有设置,最后运行下面的sql:

UPDATE `table` SET edate = current_timestamp;

这里把你的表命名为'table'这个词组。

【讨论】:

  • 显示错误#1292 - Incorrect datetime value: '' for column 'edate' at row 1
  • 请分享您的示例 csv 数据。
【解决方案2】:

您可以使用 DEFAULT 约束来设置时间戳:

ALTER TABLE
 MODIFY edate datetime DEFAULT CURRENT_TIMESTAMP

ALTER TABLE
 MODIFY edate datetime DEFAULT ON UPDATE CURRENT_TIMESTAMP

【讨论】:

  • 我认为这会对你有所帮助
猜你喜欢
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2011-08-22
  • 2018-05-28
相关资源
最近更新 更多