sql >> Database >  >> RDS >> Mysql

Wat is er mis met mijn SQL Fiddle-query?

Een beetje achtergrondinformatie voor diegenen die geïnteresseerd zijn in enkele van de mysterieuze problemen waarmee ik te maken heb gehad op SQL Fiddle:

Schakel expliciete commits uit in JDBC, detecteer ze in SQL of zet de database in een alleen-lezen status (dba.se)

In wezen probeer ik ervoor te zorgen dat de violen altijd in een consistente staat blijven, zelfs als mensen ermee spelen. Een ding waar ik me zorgen over maak, is dat mensen opzettelijk knoeien met de databases, ze breken voor de andere mensen die ermee werken (dit is eerder gebeurd, maar gelukkig niet vaak).

Ik heb methoden gevonden om dingen schoon te houden voor elk van de databaseplatforms, maar interessant genoeg is elke methode compleet anders voor elk platform. Helaas moest ik voor MySQL mijn toevlucht nemen tot de slechtste optie - alleen SELECT's aan de rechterkant toestaan. Dit komt omdat er te veel manieren zijn om queries te schrijven die impliciete commits bevatten, en er is geen manier die ik heb gevonden om te voorkomen dat dit gebeurt zonder een regelrechte ontkenning aan de kant van de query. Dit is heel jammer, dat besef ik, maar het lijkt nodig te zijn.

Hoe dan ook, deze specifieke bug was het resultaat van een wijziging die ik onlangs had aangebracht in de logica voor MySQL. Het is nu opgelost en meldt nu de verwachte foutmelding:




  1. Postgres en indexen op buitenlandse sleutels en primaire sleutels

  2. Verwijderen met meerdere tabellen en tabel herhalen in de subquery

  3. SELECTEER AANTAL voor een-op-veel-relatie

  4. Is het mogelijk om een ​​auto-increment id-kolom te maken in de mysql-weergave?