3

MySQL 5.0 から 5.1 へのアップグレード後に失敗し始めた古いアプリケーションがあります。

ちょっとした調査によると、これは、以前は自動的に適切なものに変換されていた特定のタイプの「無効な」値を挿入できない「厳格モード」によるものです。

試しSET @@SESSION.sql_mode = ''てみSET @@GLOBAL.sql_mode = ''ましたが、まだエラーが発生します。

でコメントアウトも試しsql_modeましたmy.ini

これを修正するためのより強力な「核」オプションはありますか?

4

2 に答える 2

5

私のアプリケーションでは、通常、MySQL接続が従来のモードを使用していることを確認します。

SET SESSION sql_mode = 'ANSI_QUOTES,TRADITIONAL'

新しい接続ごとに。ただ発行すれば

SET SESSION sql_mode = ''

新しい接続ごとに、問題が解決されます。

次のコマンドを発行することで、新しい接続のデフォルトのSQLモードを変更できるはずです。

SET GLOBAL sql_mode = ''

ただし、これを行うには十分な権限を持つアカウントを使用する必要があります。そうしないと機能しません。

アプリケーションで特定のSQLモードが動作していることを確認したい場合、最も堅牢な方法は、新しい接続ごとにそれを設定することだと思います。

于 2010-11-30T10:28:11.670 に答える
0

無効な日付を許可するには、次のものが必要です。

SET sql_mode = 'ALLOW_INVALID_DATES';

ただし、アプリケーションを修正した方がよいでしょう。

于 2010-11-30T08:51:36.197 に答える