MySQL 是否保留預存程序建立時的環境?

WBOY
發布: 2023-09-11 11:49:02
轉載
730 人瀏覽過

MySQL 是否保留存储过程创建时的环境?

實際上,MySQL 會保留建立預存程序時的環境。可以透過以下範例來理解,在該範例中我們使用兩個條來連接字串。這僅在 SQL 模式為 ansi 時才合法。但是,如果我們將 SQL 模式變更為非 ansi,則該過程仍然有效,就好像原始設定仍然為 true 一樣。

範例

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 模式改為非ansi 後,流程Con_string() 仍會產生與SQL 模式仍然是ansi 相同的結果。但新程式將不接受兩個條,因為我們已將 SQL 模式變更為非 ansi。

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)
登入後複製

以上是MySQL 是否保留預存程序建立時的環境?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板