我正在从另一台服务器迁移数据库,并使用phpmyadmin生成sql转储。这个问题是在一个特殊的时间出现的 text
在导出的数据稍微过长的地方插入列。我知道如何关闭严格模式,但这只会导致插入的数据被截断,这不是我想要的。我不明白为什么导出的数据太长而无法再次插入,除非phpmyadmin以某种方式向字段中添加字符。
最大长度 text
字段是65535,而我插入的结果是只有几百个字符太长了。作为一种解决方法,我将修改insert语句,将字段创建为 longtext
但我真的很想知道为什么我的出口是不可进口的,因为是和如何纠正它。
1条答案
按热度按时间watbbzwu1#
我来回答我自己的问题。显然phpmyadmin将新线作为
\r\n
. 我在4.6的一些版本中读了一些关于这个bug的文章,但是我使用的是v4.7,它仍然表现出这种行为。长话短说,一个简单的换行就变成了4个字符——以此类推text
字段的长度正好是65535个字符(可能在过去被截断),导出的数据现在比表中实际存在的数据长。对我来说,解决方法是在vim中打开文件并执行一个简单的操作:
用实际换行符替换所有字符。