2011-03-10 34 views
0

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

我试图设置SQL-MODE =“STRICT_TRANS_TABLES”我读的地方,这将有助于...它没有....

我甚至怀疑我可以通过设置一些参数解决这个我正在使用的JDBC驱动程序,是的,对不起,这是一个Java应用程序,我忘了...

请帮助!

回答

0

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

0

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

我运行5.5.8与SQL_MODE =“”和隐含截断仍然有效,因为它在旧版本(5.0,5.1,等)做了同样的

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

检查当前SQL_MODE:

SELECT @@SQL_MODE; 

SQL_MODE设置为 '':

SET SQL_MODE = '';