Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est le problème avec ma requête SQL Fiddle ?

Un peu de contexte pour ceux qui s'intéressent à certains des problèmes obscurs que j'ai traités sur SQL Fiddle :

Désactiver les validations explicites dans JDBC, les détecter dans SQL ou mettre la base de données en lecture seule (dba.se)

Essentiellement, j'essaie de m'assurer que les violons restent toujours dans un état cohérent, même lorsque les gens jouent avec eux. Une chose qui m'inquiète, c'est que les gens manipulent intentionnellement les bases de données, les brisant pour les autres personnes qui pourraient travailler avec elles (cela s'est déjà produit, mais heureusement pas souvent).

J'ai trouvé des méthodes pour garder les choses propres pour chacune des plates-formes de base de données, mais il est intéressant de noter que chaque méthode est complètement différente pour chaque plate-forme. Malheureusement, pour MySQL, j'ai dû recourir à la pire option - autoriser uniquement les SELECT sur le côté droit. C'est parce qu'il y a trop de façons d'écrire des requêtes qui incluent des commits implicites, et je n'ai trouvé aucun moyen d'empêcher que cela se produise à moins d'un déni pur et simple du côté de la requête. C'est assez malheureux, j'en suis conscient, mais cela semble être nécessaire.

Quoi qu'il en soit, ce bogue particulier était le résultat d'un changement que j'avais récemment apporté à la logique de MySQL. Il est corrigé maintenant et signale maintenant le message d'erreur attendu :