Ich habe eine alte Anwendung, die nach einem Upgrade von MySQL 5.0 auf 5.1 fehlgeschlagen ist.Wie erzwinge MySQL den TRADITIONAL-Modus?
Ein wenig Forschung ergab, dass dies auf den "strikten Modus" zurückzuführen ist, der das Einfügen bestimmter Arten von "ungültigen" Werten verhindert, die zuvor nur automatisch in etwas Vernünftiges umgewandelt wurden.
Ich versuchte SET @@SESSION.sql_mode = ''
und SET @@GLOBAL.sql_mode = ''
, aber ich bekomme immer noch den Fehler.
Auch versucht, sql_mode
in der my.ini
auskommentieren.
Gibt es eine stärkere, "nukleare" Option, um das zu beheben?
Diese * vernünftigen * Ersetzungen enthalten Datumsangaben als '0000-00-00', Fremdschlüssel wie '0', leere Strings in ENUM-Feldern ... Meiner Erfahrung nach neigt das dazu, alles zu verkomplizieren, wie 'WHERE start_date IS NULL funktioniert nicht wie erwartet und Sie müssen zu 'WHERE Startdatum NULL ODER Startdatum = '0000-00-00' wechseln. Sie sollten Ihre Produktionsumgebung mit dem entsprechenden SQL-Modus patchen, aber auch strikte Modi in Ihrer Entwicklungsumgebung erzwingen und versuchen, die Anwendung zu reparieren. –