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

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

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

我试过SET @@ SESSION.sql_mode =”和SET @@ GLOBAL.sql_mode =”,但仍然出现错误.

还尝试在my.ini中注释掉sql_mode.

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

解决方法:

在我的应用程序中,我通常通过发出以下命令来确保MySQL连接正在使用传统模式

SET SESSION sql_mode = 'ANSI_QUOTES,TRADITIONAL'

在每个新连接上.我想如果你只是发出

SET SESSION sql_mode = ''

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

您应该可以通过发出以下命令来更改新连接的默认SQL模式

SET GLOBAL sql_mode = ''

但是您必须使用具有足够特权的帐户才能执行此操作,否则该帐户将无效.

我认为,如果您要确保特定的SQL模式正在为您的应用程序运行,则最可靠的方法是为每个新连接设置它.

上一篇:Java基础 -> ⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?


下一篇:mysql-where子句中含限定符的歧义列