Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was stimmt nicht mit meiner SQL-Fiddle-Abfrage?

Ein bisschen Hintergrundwissen für diejenigen, die an einigen der geheimnisvollen Probleme interessiert sind, mit denen ich mich bei SQL Fiddle befasst habe:

Deaktivieren Sie explizite Commits in JDBC, erkennen Sie sie in SQL oder versetzen Sie die Datenbank in einen schreibgeschützten Zustand (dba.se)

Im Wesentlichen versuche ich sicherzustellen, dass die Geigen immer in einem konsistenten Zustand bleiben, auch wenn mit ihnen gespielt wird. Eine Sache, über die ich mir Sorgen mache, ist, dass Leute absichtlich mit den Datenbanken herumspielen und sie für die anderen Leute zerstören, die vielleicht mit ihnen arbeiten (das ist schon früher passiert, aber zum Glück nicht oft).

Ich habe Methoden gefunden, um die Dinge für jede der Datenbankplattformen sauber zu halten, aber interessanterweise ist jede Methode für jede Plattform völlig anders. Leider musste ich für MySQL auf die schlechteste Option zurückgreifen - nur SELECTs auf der rechten Seite zulassen. Dies liegt daran, dass es zu viele Möglichkeiten gibt, Abfragen zu schreiben, die implizite Commits enthalten, und ich habe keine Möglichkeit gefunden, dies zu verhindern, ohne dass dies auf der Abfrageseite vollständig abgelehnt wird. Das ist ziemlich unglücklich, ist mir klar, aber es scheint erforderlich zu sein.

Wie auch immer, dieser spezielle Fehler war das Ergebnis einer Änderung, die ich kürzlich an der Logik für MySQL vorgenommen hatte. Es ist jetzt behoben und meldet jetzt die erwartete Fehlermeldung: