sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué mysql cambia mi vista de código?

Lo que está viendo son problemas que resultan de la compilación y descompilación del SQL.

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

No te preocupes, todo es código equivalente. Si desea un ejemplo, escriba algo de JSON a mano, ejecútelo a través de un analizador JSON y luego vuelva a convertir esos datos en JSON. No se verá igual que el original.

Este es un problema común en la conversión de datos conocido como "viaje de ida y vuelta". Sin trabajo adicional, se pierde información no semántica como comentarios, sangría y paréntesis (o la falta de ellos). MySQL también puede aplicar optimizaciones y transformaciones semánticas, como convertir su FROM/WHERE en un JOIN. También crea código implícito y valores predeterminados (como ALGORITHM = UNDEFINED ) explícito.

Ver el resultado de un viaje de ida y vuelta puede ayudarlo a detectar errores sutiles en su código, especialmente sobre el orden de las operaciones. A veces se le puede pedir a un descompilador que agregue paréntesis adicionales para que el orden sea obvio.

No tiene sentido que MySQL almacene sus CREATE originales para tablas y vistas, se vuelven inútiles si se usa ALTER. Sin embargo, es posible devolver sus consultas tal como se escribieron originalmente.