2016-05-27 1 views
0

En utilisant Firebird et SQL Server, lorsque je crée une vue, le texte de la requête reste exactement comme je l'ai écrit. Peu importe si j'utilise SQLDBX, IbExpert, FlameRobin ou SSMS, il extrait le même texte de requête. Mais quand il s'agit de MySQL, il modifie COMPLÈTEMENT le texte de la requête. Et lorsque je l'extrait dans un script, le texte de requête soigneusement indenté est converti en une grande ligne de texte.Pourquoi MySQL reformate complètement le texte de la requête VIEW?

Il est indifférent si vous utilisez une application ODBC (SQLDBX) ou MySQL WorkBench, c'est absolument ennuyeux.

Après dit que:

  1. Il y a un raisonnement pourquoi cela fonctionne de cette façon?
  2. Il existe une solution de contournement?

Répondre

0
  1. Parce que mysql a été conçu de cette façon. Il interprète le code et le transforme en forme canonique et, dans ce processus, toutes les indendations sont perdues. Je ne m'attendrais même pas à ce qu'un rdbms stocke la commande de manière bien formatée. Ce n'est pas son but.
  2. Stockez le code des vues, des procédures stockées, des tables, etc. dans votre système de contrôle de version, où ils appartiennent.
+0

C'est une bonne excuse pour l'incompétence de conception, à mon humble avis. –

+0

Je ne pense pas que ce soit une incompétence de conception. Vous ne devriez pas compter sur la fonctionnalité de rdbms pour retourner du code bien formaté. – Shadow

+0

Si les bases de données initialement conçues au milieu des années 80 peuvent le faire, c'est une honte que MySQL ne puisse pas faire quelque chose de basique. Il n'y a pas d'excuse. Ils savent comment le faire, car cela n'arrive pas aux routines. –