MySQL স্টোরড প্রোসিডিউর তৈরির সময়ের এনভায়রনমেন্ট সংরক্ষণ করে। উদাহরণ হিসেবে দুটি বারের (||) দিয়ে স্ট্রিং কনক্যাটিনেশন করা হয়েছে যা শুধু SQL মোড ansi-তে বৈধ। কিন্তু SQL মোড non-ansi-এ পরিবর্তন করলেও প্রোসিডিউর কাজ করে যেন মূল সেটিং এখনো সত্য।
উদাহরণ
mysql> Set sql_mode = 'ansi'//
Query OK, 0 rows affected, 1 warning (0.14 sec)
mysql> Create Procedure Con_string()
-> SELECT 'a'||'b'//
Query OK, 0 rows affected (0.12 sec)
mysql> Call Con_string ();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
mysql> Set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> Call Con_string();
+----------+
| 'a'||'b' |
+----------+
| ab |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
ফলাফলে দেখা যাচ্ছে SQL মোড non-ansi-এ পরিবর্তন করলেও Con_string() প্রোসিডিউর একই ফলাফল দিচ্ছে। কিন্তু নতুন প্রোসিডিউর দুটি বার গ্রহণ করবে না কারণ SQL মোড পরিবর্তন হয়েছে।
mysql> create procedure Con_string1()
-> Select 'a'||'b'//
Query OK, 0 rows affected (0.02 sec)
mysql> Call Con_string1()//
+----------+
| 'a'||'b' |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 2 warnings (0.00 sec)