当它们的长度超过预期时,MySQl 5.5不会截断VARCHAR

时间:2011-03-10 15:45:11

标签: mysql jdbc

我遇到了这个问题:5.5 mySQL(使用myISAM表)之前用于将VARCHAR类型截断为列长度。现在,从上述版本开始,它不再存在。这是一个很大的问题,因为它打破了我的应用程序(我知道不应该有这样的问题,但我没有这样做......我只需要应付它,所以请耐心等待)。有没有办法在5.5中设置此行为?

我尝试设置SQL-MODE =“STRICT_TRANS_TABLES”,因为我在某处阅读它会有所帮助......它没有....

我甚至怀疑我可以通过在我正在使用的JDBC驱动程序中设置一些参数来解决这个问题,是的,抱歉这是一个java应用程序,我忘了......

请帮忙!

2 个答案:

答案 0 :(得分:0)

您使用的是什么SQL_MODE?它是否与升级到5.5之前使用的相同?我怀疑它不是。

我正在使用SQL_MODE =''运行5.5.8,并且隐式截断仍然与旧版本(5.0,5.1等)中的相同。

所以我怀疑你的问题是你改变了SQL_MODE,而不是你升级到5.5。

检查当前的SQL_MODE:

SELECT @@SQL_MODE;

将SQL_MODE设置为'':

SET SQL_MODE = '';

答案 1 :(得分:0)

问题出在JDBC驱动程序的参数中。事实上,它被设置为在截断的情况下抛出异常。更改配置解决了它。