You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL Workbench导入超5万行Excel文件遇问题求助

解决Excel文件导入MySQL Workbench的两类问题(二进制字符错误+日期格式不兼容)

问题根源分析

  1. 直接用「Data Import/Restore < Import from Disk < Import from Self-Contained File」导入Excel报错:该功能仅支持导入.sql/.sql.gz等SQL备份文件,Excel是二进制格式,文件头的PK等字符会被识别为无效SQL,触发ASCII '\0'错误。
  2. 日期格式错误:MySQL默认要求DATETIME类型值为YYYY-MM-DD HH:MM:SS格式,而Excel导出的MM/DD/YYYY HH:MM:SS或短格式无法直接识别。

解决方案一:用Table Data Import Wizard导入CSV(可视化操作,适合新手)

步骤:

  1. Excel转CSV:打开Excel文件,选中目标工作表,点击「文件」→「另存为」,选择格式为CSV(逗号分隔),每张表单独存一个CSV文件。
  2. 启动Workbench导入向导:连接数据库后,右键目标Schema,选择「Table Data Import Wizard」,选中刚才导出的CSV文件。
  3. 列映射与日期格式设置:
    • 若新建表:确认列名和类型匹配,将DateTime列的Data Type设为DATETIME。
    • 若已有表:在「Column Mapping」环节,找到DateTime列,设置Input Format为%m/%d/%Y %H:%i:%s(兼容带秒/不带秒的日期格式)。
  4. 完成导入:点击「Next」直到完成,重复操作处理第二张表的CSV。

解决方案二:用LOAD DATA INFILE命令(高效批量导入,适合大文件)

步骤:

  1. Excel转CSV:同方案一,确保CSV无表头或表头可跳过。
  2. 创建目标表(若未存在):
CREATE TABLE DailyList (
    List_ID INT NOT NULL,
    List_Parent_ID INT NOT NULL,
    Action VARCHAR(20) NOT NULL,
    DateTime DATETIME NOT NULL,
    PRIMARY KEY (List_ID)
);
  1. 执行导入命令:
LOAD DATA INFILE '/path/to/your/daily_list.csv'
INTO TABLE DailyList
FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- 适配CSV的分隔符和引号
LINES TERMINATED BY '\r\n' -- Windows系统换行符,Linux/macOS用'\n'
IGNORE 1 ROWS -- 跳过CSV的表头行
(List_ID, List_Parent_ID, Action, @datetime_str)
SET DateTime = STR_TO_DATE(@datetime_str, '%m/%d/%Y %H:%i:%s');

注意事项:

  • 路径需符合MySQL的secure_file_priv限制,可通过SHOW VARIABLES LIKE 'secure_file_priv';查看允许的目录,将CSV放入该目录后再执行命令。
  • 若CSV中日期格式有变体(如M/D/YYYY HH:MM),%m/%d/%Y %H:%i:%s仍可兼容,MySQL会自动补全前导零和秒数。

额外提示

  • 导出CSV前,检查Excel的DateTime列格式,统一设置为「日期时间」格式,避免导出后出现文本格式的日期值。
  • 5万行数据属于小批量,上述两种方法均可快速完成导入,无需依赖第三方付费工具。

内容的提问来源于stack exchange,提问作者ShokofehVS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:25:58