在mysql中数据导入期间自动插入列
Posted
技术标签:
【中文标题】在mysql中数据导入期间自动插入列【英文标题】:auto column insertion during data importing in mysql 【发布时间】:2017-09-01 05:19:57 【问题描述】: 我在.csv
文件中有五列,我必须将其导入mysql table
。
但我还需要在数据库中导入文件的日期。
所以我的意思是今天日期的表格中有六列。
我尝试在default
中使用time stamp
作为datatype
和CURRENT_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中数据导入期间自动插入列的主要内容,如果未能解决你的问题,请参考以下文章
excel数据导入SQL SERVER 2000 时间列报错 导入失败
#导入Word文档图片#值得收藏:当向数据库导入大量数据时,mysql主键唯一键重复插入,如何丝滑操作并不导入重复数据呢