mySQL - FUNKTION ERSTELLEN?ÄNDERT SQL-DATEN?
-
12-11-2019 - |
Frage
Ich bin dabei, eine zu schreiben CREATE FUNCTION
mit mySQL und ich frage mich, ob CREATE TEMPORARY TABLE
zählt zur Flagge MODIFIES SQL DATA
.Funktion ändert keine permanente Tabelle, nur temporäre Tabelle, die zu Optimierungszwecken erstellt wird.Soll ich Flagge verwenden? MODIFIES SQL DATA
oder nur READS SQL DATA
?Was ist ein wirklich Nutzen benutzen MODIFIES SQL DATA
oder READS SQL DATA
Flagge trotzdem?
Lösung
Ab sofort (MySQL 5.5) dienen diese Merkmale nur noch der In-Code-Dokumentation.
Aus http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html
Mehrere Merkmale liefern Informationen über die Art der Datenverwendung durch die Routine.In MySQL dienen diese Merkmale nur der Empfehlung.Der Server verwendet sie nicht, um zu beschränken, welche Arten von Aussagen eine Routine ausführen darf.
Dies steht im Gegensatz zu (NON)DETERMINISTIC
-Klausel, die dem Optimierer als Hinweis dient, ob die Ergebnisse der Funktion zwischengespeichert werden können.