Malah, MySQL mengekalkan persekitaran apabila prosedur tersimpan dibuat. Ini boleh difahami melalui contoh berikut di mana kita menggunakan dua bar untuk menggabungkan rentetan. Ini hanya sah apabila mod SQL adalah ansi. Walau bagaimanapun, jika kita menukar mod SQL kepada bukan ansi, proses itu masih berfungsi seolah-olah tetapan asal masih benar.
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)
Hasil yang ditetapkan di atas menunjukkan bahawa walaupun selepas menukar mod SQL kepada bukan ansi, prosedur Con_string() masih menghasilkan keputusan yang sama seolah-olah mod SQL masih ansi. Tetapi program baru tidak akan menerima kedua-dua bar kerana kami telah menukar mod SQL kepada bukan ansi.
rreeeeAtas ialah kandungan terperinci Adakah MySQL mengekalkan persekitaran di mana prosedur tersimpan dicipta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!