公司需要将SqlServer数据导入MySql中,借助Navicat工具导入,老是出现Data too long for column XX at row n",一开始还真以为是字段长度不够,结果改成了大值也还是导入失败。在网上找大家都说修改mysql安装目录下的my.ini,修改sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”把其中的STRICT_TRANS_TABLES,去掉,或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然后重启mysql就ok了;或者是修改my.ini中的default-character-set=utf8;不过这招对我没起作用。
后来才找到问题的原因:1、修改字段的字符集;2、修改字段的属性;
1、手动在出错的字段中输入中文都报[Data too long for column xx at row n],所以更何况导入数据!将表中字段字符集latin1改成utf8,再导入就OK了。
2、SqlServer数据库字段有一属性bit,MySql中也有,但是直接导入数据不OK,只能先把MySql这边的bit改成int,才能导入成功,然后再将导入成功的数据字段属性改回bit。
我的错是这样改好了,不一定适用于所有出这错的人,能通过这方式改好的更好,行不通的,建议还是耐下心来一点点通过排除法找原因。
相关推荐
在MySQL数据库操作中,当你尝试插入或更新一行数据时,如果某个字段的值超过了该字段定义的最大长度,系统会抛出“ERROR 1406 : Data too long for column”的错误。这个错误提示非常直接,意味着你试图输入的数据在...
通过以上解决方案,我们可以正确地导入中文字符到 MySQL 中,无需再担心“Data too long for column XX at row n”的错误。同时,我们也需要了解 MySQL 的默认编码为 gb2312,并且需要在不同的场景下选择正确的编码...
10. 错误1406: Data too long for column 'column_name' at row 1 插入的数据长度超过了列的最大允许长度。调整数据的大小,或者增大列的长度限制。 这些错误只是MySQL使用过程中可能遇到的一部分,理解和解决这些...
在本例中,报错信息为“Incorrect string value :'\xE5\x8F\xAC' for column 'XXX' at row 1”,这通常意味着尝试插入的文本包含了MySQL无法识别的字符编码,或者字段类型不能容纳特定的字符序列。 首先,我们需要...
在上面的例子中,当尝试向`VARCHAR(10)`列插入`12345678901`时,由于超过了10个字节(10个英文数字字符共10字节),MySQL返回了`ERROR 1406 (22001): Data too long for column 'name' at row 1`错误。同样,当尝试...
=======================================================DATASNAP* After deleting a row from a TClientDataset, sometimes the delta dataset still contains a record. This happens if you populate the ...
解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的...
二进制数据类型 row 1~2000字节 可变长二进制数据,在具体定义字段的时候必须指明最大长度n long raw 1~2GB 可变长二进制数据 LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob...