【问题标题】:Round Trip INTO OUTFILE, Excel Editing, and LOAD DATA INFILE without corruption往返 INTO OUTFILE、Excel 编辑和 LOAD DATA INFILE 无损坏
【发布时间】:2023-03-24 09:10:01
【问题描述】:

我一直在尝试将带有 INTO OUTFILE 的 mysql 表导出到 CSV 以在 Excel 中进行编辑,然后使用 LOAD DATA INFILE 插入回 mysql。

我可以导出好,甚至重新插入未编辑的文件。但是,如果我在 Excel 中打开进行更改然后保存,事情就会搞砸了。当它询问我是否确定要以 CSV 格式导出时,我选择“是”,但即使我尝试在 Excel 中重新打开文件,它也会出现无效格式。

我想知道“字段逃逸、终止等”的正确设置是什么?将为每个命令确保与 Excel 的兼容性。

谢谢,

【问题讨论】:

  • 如果有帮助,我有所有类型的数据、美元金额、带百分比的十进制值等。要重新插入的表由 varchar 字段组成。
  • 这似乎与8031193非常相似

标签: mysql load-data-infile into-outfile


【解决方案1】:

你应该可以做到:

SELECT < > FROM <blah>
INTO OUTFILE '<filename>' 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

你也可以这样做:

SELECT < > FROM <blah>
INTO OUTFILE '<filename>'
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

您也可以使用“|”作为分隔符并以分隔符导入文件。

【讨论】:

  • 感谢您的回复。这会切断我有逗号的任何地方,并用“\”替换该字段的其余部分。我可以添加 ENCLOSED BY '"' ... 以使数据表现良好,但是当我编辑和保存它时,它会在 LOAD DATA INFILE 上搞砸。
  • @christian 列中有标签吗?
  • Excel 似乎不支持选项卡选项。我试图让用户轻松编辑他们的数据,因此尽量避免额外的步骤。
  • @christian Excel 允许导入由其他内容分隔的文本文件,您也可以尝试将其设为 .xls 文件并尝试打开它。
  • 我确信有一种方法可以使用另一个分隔符导入,但我只是想让用户尽可能简单。我可以导出到 csv,所以我想我会尝试使用 fgetcsv 来导入数据。我是事后处理,所以插入速度没有导出速度那么大。
猜你喜欢
  • 2019-09-25
  • 2020-02-17
  • 1970-01-01
  • 2012-09-02
  • 2023-04-05
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多