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

pourquoi mysql change ma vue de code?

Ce que vous voyez, ce sont des problèmes résultant de la compilation puis de la décompilation du SQL.

human readable SQL -> compiled form -> human readable SQL

Ne vous inquiétez pas, tout est du code équivalent. Si vous voulez un exemple, écrivez du JSON à la main, exécutez-le via un analyseur JSON, puis retransformez ces données en JSON. Il ne ressemblera pas à l'original.

Il s'agit d'un problème courant lors de la conversion de données appelé "aller-retour". Sans travail supplémentaire, les informations non sémantiques telles que les commentaires, l'indentation et les parenthèses (ou leur absence) sont perdues. MySQL peut également appliquer des optimisations et des transformations sémantiques, telles que la transformation de votre FROM/WHERE en JOIN. Il crée également du code implicite et des valeurs par défaut (comme ALGORITHM = UNDEFINED ) explicite.

Voir le résultat d'un aller-retour peut vous aider à repérer des bogues subtils dans votre code, en particulier concernant l'ordre des opérations. Un décompilateur peut parfois être invité à ajouter des parenthèses supplémentaires pour rendre l'ordre évident.

Il est inutile que MySQL stocke vos CREATE d'origine pour les tables et les vues, ils deviennent inutiles si ALTER est utilisé. Cependant, il peut être possible de renvoyer vos requêtes telles qu'elles ont été écrites à l'origine.