2

MySQLCREATE FUNCTIONで aを書こうとしていますが、 flag にカウントされるかどうか疑問に思っています。関数は永続テーブルを変更せず、最適化のために作成する一時テーブルのみを変更します。CREATE TEMPORARY TABLEMODIFIES SQL DATA

フラグMODIFIES SQL DATAまたはのみを使用する必要がありREADS SQL DATAますか? とにかく使用またはフラグを立てること
の実際の利点は何ですか?MODIFIES SQL DATAREADS SQL DATA

4

1 に答える 1

5

現在 (MySQL 5.5) では、これらの特性はコード内のドキュメントとしてのみ機能します。

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

いくつかの特性は、ルーチンによるデータ使用の性質に関する情報を提供します。MySQL では、これらの特性は単なるアドバイスです。サーバーは、ルーチンが実行できるステートメントの種類を制限するためにそれらを使用しません。

(NON)DETERMINISTICこれは、関数の結果をキャッシュできるかどうかのヒントとしてオプティマイザに役立つ句とは対照的です。

于 2012-02-25T18:52:50.793 に答える