MySQL 問題別グループ

MySQL 問題別グループ

MySQL 5.7 の group by 句の変更に関して、いくつか問題があります。正しく実行できるようにするためにいくつかのクエリを修正する必要があることを示すエラーが繰り返し表示されます。いくつかの異なる方法を試しましたが、サーバー上で次のクエリを実行することでのみ機能することが分かりました。

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

これを行うとエラーがなくなり、アプリを実行できるようになります。

私は追加してみました:

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

しかし/etc/mysql/my.cfg、自動増分番号が生成されなくなったため、すべての挿入が失敗し、いくつかの問題が発生しました。

これは現在、多数のサーバーで発生しており、いずれかのサーバーが再起動するとクエリの実行を継続するのが困難になります。

この問題の解決を手伝ってくれる人はいますか?

答え1

MySQL 5.7 ドキュメント

サーバーの起動時に SQL モードを設定するには、--sql-mode="modes"コマンド ライン、sql-mode="modes"または my.cnf (Unix オペレーティング システム) や my.ini (Windows) などのオプション ファイルでオプションを使用します。modes は、カンマで区切られたさまざまなモードのリストです。SQL モードを明示的にクリアするには、コマンド ラインで --sql-mode="" を使用するか、オプション ファイルで sql-mode="" を使用して空の文字列に設定します。

引用符を に含めてくださいmy.cnf

関連情報