2017-12-03 5 views
0

Ich habe ein Problem mit ONLY_FULL_GROUP_BY auf MySQL 5.7.14, wo ich nicht scheinen kann, es zu deaktivieren, obwohl ich den SQL-Modus eingestellt habe.Kann nicht deaktivieren ONLY_FULL_GROUP_BY

Ich habe beide @@ sql_mode gesetzt, um ONLY_FULL_GROUP_BY durch Ausführen dieses Befehls zu entfernen: SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); und ich habe auch die my.cnf-Datei aktualisiert, um sie auszuschließen, indem ich den sql-mode-Parameter festlege. Wenn ich select @@sql_mode ausführen, kann ich sehen, dass ONLY_FULL_GROUP_BY nicht mehr gesetzt ist.

Jedoch, wenn ich meine gespeicherte Prozedur ausführen Ich bin immer noch diesen Fehler:

1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'product_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Was bin ich hier? Wird der SQL-Modus vom SP ignoriert?

Ich möchte nicht den SP-Code ändern, wie es von einem 3rd-Party-Modul (für Magento) installiert wurde und das würde Probleme verursachen, wenn wir upgraden wollten.

Dies ist auf WAMP für meine lokalen Entwickler.

Antwort

0

Für jeden, der in das gleiche Problem kommt, stellt sich heraus, dass der SQL-Modus zusammen mit der gespeicherten Prozedur gespeichert wird, also obwohl ich den SQL-Modus korrekt geändert habe, aktualisiert es den SP überhaupt nicht. Um dies zu beheben, löschte ich einfach die gespeicherten Prozeduren und erstellte sie neu, während der neue SQL-Modus festgelegt wurde. Es funktioniert jetzt gut.

Verwandte Themen