MySQL - СОЗДАТЬ ФУНКЦИЮ? ИЗМЕНЯЕТ ДАННЫЕ SQL?

Я собираюсь написать CREATE FUNCTION с MySQL, и мне интересно, если CREATE TEMPORARY TABLE рассчитывает на флаг MODIFIES SQL DATA, Функция не изменяет какую-либо постоянную таблицу, а только временную таблицу, которую она создает для оптимизации. Должен ли я использовать флаг MODIFIES SQL DATA или только READS SQL DATA? Что действительно выгодно использовать MODIFIES SQL DATA или же READS SQL DATA флаг в любом случае?

1 ответ

Решение

На данный момент (MySQL 5.5) эти характеристики служат только в качестве документации в коде.

С http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html

Несколько характеристик предоставляют информацию о характере использования данных программой. В MySQL эти характеристики носят исключительно рекомендательный характер. Сервер не использует их для ограничения того, какие операторы разрешено выполнять подпрограмме.

Это в отличие от (NON)DETERMINISTIC предложение, которое служит подсказкой оптимизатору, можно ли кэшировать результаты функции.

Другие вопросы по тегам