sql >> Databasteknik >  >> RDS >> Mysql

varför mysql ändra min kodvy?

Det du ser är problem som beror på att SQL kompileras och sedan dekompileras.

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

Oroa dig inte, allt är likvärdig kod. Om du vill ha ett exempel, skriv lite JSON för hand, kör det genom en JSON-parser och förvandla sedan den datan tillbaka till JSON. Det kommer inte att se likadant ut som originalet.

Detta är ett vanligt problem vid konvertering av data som kallas "rundtur". Utan extra arbete går icke-semantisk information som kommentarer, indrag och parenteser (eller avsaknaden av dem) förlorad. MySQL kan också tillämpa optimeringar och semantiska transformationer, som att förvandla din FROM/WHERE till en JOIN. Den skapar också implicit kod och standardvärden (som ALGORITHM = UNDEFINED ) explicit.

Att se resultatet av en rundresa kan hjälpa dig att upptäcka subtila buggar i din kod, särskilt om operationsordning. En dekompilator kan ibland bli ombedd att lägga till extra parentes för att göra ordningen uppenbar.

Det är ingen idé att MySQL lagrar dina ursprungliga CREATEs för tabeller och vyer, de blir värdelösa om ALTER används. Det kan dock vara möjligt att returnera dina frågor som de ursprungligen skrevs.




  1. CodeIgniter och AJAX-formulär skickas

  2. Infoga lista i min databas med Python

  3. Entity Framework + MySQL-klassgenerering

  4. Anslut till MySQL över SSH med Java