处理csv的最佳方法,为mySql做准备

时间:2010-11-23 03:31:05

标签: mysql database csv format

我们有一个CSV文件,我们已经过仔细检查和剥离,以便以我们想要的格式显示数据。

因此这个csv文件的大小不到500kb。我已经转换为sql(保存为txt)希望没问题。

原始csv数据条目是3个字段,因此:

'STANLEY', '7331', 'TAS'

'GORMANSTON', '7466', 'TAS'

转换后如此:

INSERT INTO郊区('Locality''Pcode''State')VALUES('\'STANLEY \'','\''7331 \'','\'TAS \'' );

INSERT INTO郊区('Locality''Pcode''State')VALUES('\'GORMANSTON \'','\''7466 \'','\'TAS \'' );

现在好了,我不想成为会员,我想知道。我是否正确转换了它? 我是否应该考虑将此代码更清晰地导入数据库。

这个文件的sql超过1.6 MB,超过16,000个条目,所以要确保我已经做好了事情。

干杯

3 个答案:

答案 0 :(得分:2)

看起来很好,除了转义的报价。我通常使用excel文件使用此技术。我有我的列,然后我创建一个公式来生成适当的插入语句。或者,您可以使用SSIS之类的东西将数据导入数据库。

答案 1 :(得分:2)

正如亚当的评论所说的那样,你很可能不想插入引号,你正在使用“斯坦利”等。

此外,在“字段”一侧(地点等),确保这些是后退(非移位波形),数据面(STANLEY)是单引号。

更改为:

INSERT INTO suburbs (`Locality`,`Pcode`,'State`) VALUES ('STANLEY','7331','TAS');

除此之外,我认为没有任何问题。

答案 2 :(得分:1)

你的SQL看起来不错,虽然额外的转义单引号不会在你的记录中结束吗?我不确定你的唱片中是否有“STANLEY”或STANLEY,所以我会把它留给你。

你完成了一半的工作。你有一个插入策略,你也有一个回滚策略吗?看起来这对你来说似乎是一次大数据迁移,如果我可能如此谦虚地建议你在垃圾表中只用几行来尝试插入,你不介意先删掉它。如果必须撤消更改并且没有任何内容或准备撤消任何错误,那将始终是一种痛苦。