sql mode

SELECT list is not in GROUP BY on aggregated column .....Ошибка sql_mode=only_full_group_by

Forums:

#1055 - Expression of SELECT list is not in GROUP BY on aggregated column which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Смысл ошибки в том, что при группировке нельзя указывать выборке поля, которые не входят в GROUP BY -- ведь тогда на одно поле в сгруппированной строке приходится сразу несколько неагрегированных (т.е. таким, по которым группировка НЕ проводилась) значений и MySQL не понимает какое именно из значений использовать.

mysql Меняем sql_mode (режим работы) в конфигурационном файле -- пример

Forums:

В этой этой заметке мы расмотрим как поменять режим работы сервера mySQL, на примере выключения строго режима (опции STRICT_TRANS_TABLES).

Как исправить режим sql_mode

Находим в my.ini (или my.cnf на линуксе, например этот файл в ubuntu) секцию [mysqld] строку

mysql Field doesn't have a default value mysql error - Ошибка. Решение

Forums:

General error: 1364 Field doesn't have a default value

-- такая ошибка может возникать в базе, если вы вставляет в таблицу данные не упоминая поля, для которых не указано значение по умолчанию.

Решение

Одно из решений проблемы -- изменить SQL MODE (режим) убрав из него опцию, (и таким образом выключить строгий режим):

Проверить/ установить задать значение sql mode (режим) - как проверить пример - mysql check sql mode (sql_mode)

Forums:

Проверка текущего режима

Для проверки этого значения просто выполните SQL запрос:

SELECT @@sql_mode;

Установка режима для текущей сессии SQL запросом

Для установки используйте команду вида (например):

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

а если несколько значений то, например, так:

Subscribe to RSS - sql mode