sql >> Databáze >  >> RDS >> Mysql

Co je špatného na mém dotazu SQL Fiddle?

Trochu pozadí pro ty, kteří se zajímají o některé tajemné problémy, kterými jsem se zabýval na SQL Fiddle:

Zakažte explicitní potvrzení v JDBC, zjistěte je v SQL nebo uveďte databázi do stavu pouze pro čtení (dba.se)

V podstatě se snažím zajistit, aby housle vždy zůstaly v konzistentním stavu, i když si s nimi lidé hrají. Jedna věc, které jsem se obával, je, že si lidé záměrně zahrávají s databázemi a rozbíjejí je pro ostatní lidi, kteří s nimi mohou pracovat (to se již dříve stávalo, ale naštěstí ne často).

Našel jsem metody, jak udržovat věci čisté pro každou z databázových platforem, ale je zajímavé, že každá metoda je pro každou platformu úplně jiná. Bohužel pro MySQL jsem se musel uchýlit k nejhorší možnosti - povolit pouze SELECTy na pravé straně. Je to proto, že existuje příliš mnoho způsobů, jak psát dotazy, které zahrnují implicitní potvrzení, a nenašel jsem žádný způsob, jak tomu zabránit, kromě přímého odmítnutí na straně dotazu. Uvědomuji si, že je to docela nešťastné, ale zdá se, že je to nutné.

Každopádně tato konkrétní chyba byla výsledkem změny, kterou jsem nedávno provedl v logice pro MySQL. Nyní je opraveno a nyní hlásí očekávanou chybovou zprávu:




  1. Pochopení aliasů Oracle – proč není alias v dotazu rozpoznán, pokud není zabalen do druhého dotazu?

  2. Jak provést aktualizaci + připojit se k PostgreSQL?

  3. Vyplnění rozevíracího seznamu na základě předchozího výběru

  4. Generátory dat pro SQL server?