क्या होता है यह देखने के लिए यहां एक छोटा प्रयोग है।
create function determin_rand (i integer)
returns float DETERMINISTIC
return rand();
create function not_determin_rand (i integer)
returns float
return rand();
select determin_rand(1) as d1 , determin_rand(1) as d2,
not_determin_rand(1) as nd1, not_determin_rand(1) as nd2
0.00850549154 0.831901073456 0.133989050984 0.174242004752
चूंकि मान भिन्न हैं, इसलिए फ़ंक्शन को हर बार कॉल किया जा रहा है। पहले समारोह में मैंने इसे नियतात्मक घोषित किया, लेकिन इससे कोई फर्क नहीं पड़ा।
मैंने आपके लिए इसे mysql के विभिन्न संस्करणों के साथ आज़माने के लिए एक sqlfiddle बनाया है।
http://sqlfiddle.com/#!2/a8536/2