Question

Je suis sur le point d'écrire un CREATE FUNCTION avec mysql Et je me demande si CREATE TEMPORARY TABLE compte pour le drapeau MODIFIES SQL DATA. Fonction ne modifie aucune table permanente, juste une table temporaire, qu'il crée à des fins d'optimisation. Devrais-je utiliser le drapeau MODIFIES SQL DATA ou seulement READS SQL DATA? Qu'est-ce qu'un vraiment bénéficier à utiliser MODIFIES SQL DATA ou READS SQL DATA Flag de toute façon?

Était-ce utile?

La solution

À partir de maintenant (MySQL 5.5), ces caractéristiques ne servent que de documentation en code.

De http://dev.mysql.com/doc/refman/5.5/en/create-proceture.html

Plusieurs caractéristiques fournissent des informations sur la nature de l'utilisation des données par la routine. Dans MySQL, ces caractéristiques sont uniquement consultatives. Le serveur ne les utilise pas pour limiter les types d'instructions qu'une routine sera autorisée à exécuter.

C'est en contraste avec (NON)DETERMINISTIC Clause, qui sert d'indice pour optimiser si les résultats de la fonction peuvent être mis en cache.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top