Группировка MySQL по проблемам

Группировка MySQL по проблемам

У меня возникли некоторые проблемы с изменениями в предложении group by в MySQL 5.7. Я постоянно получаю сообщение об ошибке, указывающее на необходимость исправить некоторые запросы, чтобы они работали правильно. Я выполнил несколько разных действий, но единственное, что, как я обнаружил, работает, — это запуск следующих запросов на сервере:

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.

Связанный контент