實(shí)際上,MySQL 會(huì)保留創(chuàng)建存儲(chǔ)過程時(shí)的環(huán)境。可以通過以下示例來理解,在該示例中我們使用兩個(gè)條來連接字符串。這僅在 SQL 模式為 ansi 時(shí)才合法。但是,如果我們將 SQL 模式更改為非 ansi,該過程仍然有效,就好像原始設(shè)置仍然為 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)
登錄后復(fù)制
上面的結(jié)果集顯示,即使將 SQL 模式更改為非 ansi 后,過程 Con_string() 仍會(huì)生成與 SQL 模式仍然是 ansi 相同的結(jié)果。但是新程序?qū)⒉唤邮軆蓚€(gè)條,因?yàn)槲覀円褜?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)
登錄后復(fù)制
以上就是MySQL 是否保留存儲(chǔ)過程創(chuàng)建時(shí)的環(huán)境?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!