MySQL - Crea funzione?Modifica i dati SQL?
-
12-11-2019 - |
Domanda
Sto per scrivere un CREATE FUNCTION
con MySQL e mi sto chiedendo, se CREATE TEMPORARY TABLE
conta per la bandiera MODIFIES SQL DATA
.Funzione non modifica alcun tavolo permanente , solo tabella temporanea, che crea per scopi di ottimizzazione.Dovrei usare bandiera MODIFIES SQL DATA
o solo READS SQL DATA
?Cos'è un valore davvero MODIFIES SQL DATA
o Bandiera READS SQL DATA
comunque?
Soluzione
A partire da ora (MySQL 5.5) Queste caratteristiche servono solo come documentazione in-code.
Da http://dev.mysql.com/doc/refman/5.5/it/create-procedure.html
.Diverse caratteristiche forniscono informazioni sulla natura dei dati utilizzare dalla routine.In MySQL, queste caratteristiche sono solo consultive. Il server non li usa per vincolare quali tipi di istruzioni a La routine sarà consentita da eseguire.
Questo è in contrasto con la clausola
(NON)DETERMINISTIC
, che funge da suggerimento a ottimizzare se i risultati della funzione possono essere memorizzati nella cache.