如何强制MySQL退出传统模式?

时间:2010-11-30 06:12:57

标签: mysql mysql5

我有一个旧的应用程序,从MySQL 5.0升级到5.1后开始失败。

一些研究表明,这是由于“严格模式”导致无法插入某些类型的“无效”值,这些值之前只是自动转换为合理的值。

我尝试SET @@SESSION.sql_mode = ''SET @@GLOBAL.sql_mode = '',但我仍然收到错误。

还尝试在sql_mode中评论my.ini

是否有更强大的“核”选择来解决这个问题?

2 个答案:

答案 0 :(得分:5)

在我的应用程序中,我通常通过发出

确保MySQL连接使用传统模式
SET SESSION sql_mode = 'ANSI_QUOTES,TRADITIONAL'

每个新连接。我认为如果你刚发出

SET SESSION sql_mode = ''

在每个新连接上,您将解决问题。

您应该可以通过发出

来更改新连接的默认SQL模式
SET GLOBAL sql_mode = ''

但您必须使用具有足够权限的帐户才能执行此操作,否则它将无效。

我认为如果您想确保某个特定的SQL模式适用于您的应用程序,最有效的方法是为每个新连接设置它。

答案 1 :(得分:0)

要允许无效日期,您需要:

SET sql_mode = 'ALLOW_INVALID_DATES';

但你最好修好你的申请。