在mysql中数据导入期间自动插入列

Posted

技术标签:

【中文标题】在mysql中数据导入期间自动插入列【英文标题】:auto column insertion during data importing in 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列..这将有助于我们更多地了解您的问题 【参考方案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

【讨论】:

我认为这会对你有所帮助

以上是关于在mysql中数据导入期间自动插入列的主要内容,如果未能解决你的问题,请参考以下文章

db2数据库导入时自动增长的ID列如何填写

excel数据导入SQL SERVER 2000 时间列报错 导入失败

#导入Word文档图片#值得收藏:当向数据库导入大量数据时,mysql主键唯一键重复插入,如何丝滑操作并不导入重复数据呢

mysql中自动插入时间的格式。 我使用mysql 数据库中设置,当有一条数据插入的时候,会自动插入当前时间…

如何使用MySQL实现批量插入数据

想在mysql数据库中的表中插入一列,怎么做?