0

我有一个带有两列和大约 1700 万行的大型分隔 txt 文件。我已将其导入数据库,错误地表中的一列比文件中的文本短。即 varchar (4000) 而不是 varchar (7000)

大约 48000 条文本较长的记录已被切割成 40k 个字符。

如何在不重新导入文件的情况下替换这些文件?

我在想我是否能够从 txt 文件中仅过滤具有一定长度的行,然后将其删除,然后尝试插入更新较长的行。

但是如何在文本文件中选择所有具有一定长度的行?或者哪个程序可以做到这一点。

我正在使用 MySQL DB 和 emEditor 进行大文件文本编辑。

谢谢。

4

2 回答 2

1

取决于它如何连接到其他基础设施,我的猜测是最简单和最安全的处理方式就是删除并重新导入表......

如果由于某种原因不是一个选项,我会编写一个遍历文本文件的脚本,或者只是无条件地更新大文本字段,或者检查它的长度是否需要更新(即> 4000个字符)

如果自导入数据以来表可能有任何更改,请务必检查将被覆盖的内容以及记录是否确实是您要更新的记录(取决于表的索引方式)

希望这能给你一些起点。

你有我的同情,在那里做过...

于 2013-01-24T14:52:27.887 回答
0

您还可以构建一个查询,该查询返回该列包含 4000 字节的每条记录。哪些可能是您导入文件时被剪切的那些。有了这组记录,如果您在数据库表 ofc 上有行引用,您可以尝试在文件中找到它们。如果有太多,一个简单的脚本就可以解决问题。

于 2013-01-24T15:23:05.817 回答