الخلية - إنشاء وظيفة؟تعديل بيانات SQL؟
-
12-11-2019 - |
سؤال
أنا على وشك أن أكتب أ CREATE FUNCTION
مع mySQL وأنا أتساءل، إذا CREATE TEMPORARY TABLE
التهم نحو العلم MODIFIES SQL DATA
.وظيفة لا يعدل أي جدول دائم, ، مجرد جدول مؤقت، يتم إنشاؤه لغرض التحسين.هل يجب أن أستخدم العلم MODIFIES SQL DATA
أو فقط READS SQL DATA
؟ما هو حقا فائدة ليستخدم MODIFIES SQL DATA
أو READS SQL DATA
العلم على أي حال؟
المحلول
اعتبارًا من الآن (MySQL 5.5)، تعمل هذه الخصائص فقط كوثائق داخل التعليمات البرمجية.
من http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html
توفر العديد من الخصائص معلومات حول طبيعة استخدام البيانات بواسطة الروتين.في MySQL، هذه الخصائص استشارية فقط.لا يستخدمها الخادم لتقييد أنواع العبارات التي سيتم السماح بتنفيذ روتين.
وهذا على النقيض من (NON)DETERMINISTIC
عبارة، والتي تكون بمثابة تلميح للمحسن فيما إذا كان من الممكن تخزين نتائج الوظيفة مؤقتًا.