MySQL-Warnings zurücksetzen

MySQL, PostgreSQL, SQLite
debphp
Posts: 4
Joined: 2007-11-07 09:50

MySQL-Warnings zurücksetzen

Post by debphp » 2008-02-29 10:29

Hallo Forum,

mit "SHOW WARNINGS" bekommt man Informationen über die Warnungen der letzten MySQL-Abfrage, also wenn z.B. bei einem INSERT Daten abgeschnitten wurden.
Allerdings bezieht sich das, wie ich herausgefunden habe, nur auf DML-Statements wie INSERT, UPDATE usw.
Das heißt, dass wenn es eine Warnung bei einem INSERT gab und danach ein SELECT-Statement ausgeführt wird, die erneute Abfrage "SHOW WARNINGS" die alte Warnmeldung vom INSERT zurückliefert. Erst wenn wieder ein korrektes INSERT/UPDATE erfolgt, ist anschließend "SHOW WARNINGS" leer.

Nun suche ich nach einer Möglichkeit, die internen MySQL-Warnmeldungen zurückzusetzen und finde keine Lösung:

Code: Select all

// Fehlerzähler nach der Query auf 0 und dann wieder auf 64 setzen hat keine Wirkung
SET @@max_error_count = 0
SET @@max_error_count = 64

// Fehlerzähler mit SET auf 0 setzen - Variable 'warning_count' is a read only variable
SET @@warning_count = 0;


Tja, das einzige was wohl funktionieren wird, ist nach jeder Query ein UPDATE ausführen, was 100%-ig funktioniert (UPDATE tabelle set ID=1 WHERE ID=1) oder soetwas, aber das ist nicht wirklich schön :(

Kennt jemand eine elegantere Lösung, die letzte Warnmeldung zurückzusetzen?