sql >> Database teknologi >  >> RDS >> Mysql

Hvad er der galt med min SQL Fiddle-forespørgsel?

Lidt baggrund for dem, der er interesseret i nogle af de mystiske problemer, jeg har beskæftiget mig med på SQL Fiddle:

Deaktiver eksplicitte commits i JDBC, detekter dem i SQL, eller sæt databasen i skrivebeskyttet tilstand (dba.se)

Grundlæggende prøver jeg at sikre, at violinerne altid forbliver i en konsistent tilstand, selvom folk leger med dem. En ting, jeg har bekymret mig om, er folk, der bevidst roder med databaserne, bryder dem for de andre mennesker, der måske arbejder med dem (dette er sket før, men ikke ofte heldigvis).

Jeg har fundet metoder til at holde tingene rene for hver af databaseplatformene, men interessant nok er hver metode fuldstændig forskellig for hver platform. Desværre, for MySQL måtte jeg ty til den værste mulighed - kun at tillade SELECTs på højre side. Dette skyldes, at der er for mange måder at skrive forespørgsler på, der inkluderer implicitte forpligtelser, og der er ingen måde, som jeg har fundet til at forhindre, at det sker, bortset fra direkte benægtelse på forespørgselssiden. Det er ret uheldigt, indser jeg, men det ser ud til at være påkrævet.

Under alle omstændigheder var denne særlige fejl et resultat af en ændring, jeg for nylig havde lavet i logikken for MySQL. Det er rettet nu, og rapporterer nu den forventede fejlmeddelelse:




  1. JDBC giver MySQL datetime i UTC

  2. MySQL JDBC Driver 5.1.33 - Tidszoneproblem

  3. JDBC batch operationsforståelse

  4. Skalering af PostgreSQL ved hjælp af Connection Poolers &Load Balancers