首页  >  文章  >  数据库  >  MySQL 是否保留存储过程创建时的环境?

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

WBOY
WBOY转载
2023-09-11 11:49:02712浏览

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删除