我有一个大的分隔txt文件,有两列和大约1700万行。我已将其导入数据库,错误地表中的一列比文件中的文本更短。即varchar(4000)而不是varchar(7000)
大约48,000条文字较长的记录已被切割成40k字符。
如何在不重新导入文件的情况下更换这些文件?
我在想如果能够从txt文件中过滤掉一定长度的行,并删除它们,并尝试插入更新更长的行。
但是如何在文本文件中选择具有一定长度的所有行?或者哪个程序可以做到这一点。
我使用MySQL DB和emEditor进行大文件文本编辑。
感谢。
答案 0 :(得分:1)
根据它与其他基础设施的连接方式,我的猜测是最简单,最安全的方式就是放弃并重新进入桌面......
如果由于某种原因不是一个选项,我会编写一个遍历文本文件的脚本,并且只是无条件地更新大文本字段或检查它是否具有使更新成为必需的长度(即> ; 4000个字符)
如果自导入数据后表中可能有任何更改,请务必检查要覆盖的内容以及记录确实是要更新的记录(取决于表的索引方式)< / p>
希望这给你一些起点。
你有同情心,去过那里......
答案 1 :(得分:0)
您还可以构建一个查询,返回该列包含4000个字节的每条记录。 您可能是导入文件时被剪切的文件。 有了这组记录,如果在数据库表ofc上有一个行引用,你可以尝试在文件中找到它们。如果有太多,一个简单的脚本可以做到这一点。