sql >> Databasteknik >  >> RDS >> Mysql

Vad är det för fel på min SQL Fiddle-fråga?

Lite bakgrund för dem som är intresserade av några av de svåra problem som jag har sysslat med på SQL Fiddle:

Inaktivera explicita commits i JDBC, identifiera dem i SQL eller ställ databasen i ett skrivskyddat tillstånd a> (dba.se)

I huvudsak försöker jag se till att fiolerna alltid förblir i ett konsekvent tillstånd, även när folk leker med dem. En sak som jag har oroat mig för är att folk avsiktligt bråkar med databaserna, bryter dem åt andra som kanske arbetar med dem (detta har hänt tidigare, men inte ofta som tur är).

Jag har hittat metoder för att hålla saker ren för var och en av databasplattformarna, men intressant nog är varje metod helt olika för varje plattform. Tyvärr, för MySQL var jag tvungen att ta till det sämsta alternativet - endast tillåta SELECTs på höger sida. Detta beror på att det finns för många sätt att skriva frågor som inkluderar implicita åtaganden, och det finns inget sätt som jag har hittat för att förhindra att det händer, förutom rent förnekande på frågesidan. Det här är ganska olyckligt, inser jag, men det verkar krävas.

Hur som helst, denna specifika bugg var ett resultat av en förändring jag nyligen hade gjort i logiken för MySQL. Det är fixat nu och rapporterar nu det förväntade felmeddelandet:




  1. uppdatera rad automatiskt efter en viss tid

  2. MySQL-fråga för ett visst datumintervall

  3. SQLAlchemy, Psychopg2 och Postgresql COPY

  4. Analysera I/O-prestanda för SQL Server