ホームページ  >  記事  >  データベース  >  MySQL はストアド プロシージャが作成された環境を保存しますか?

MySQL はストアド プロシージャが作成された環境を保存しますか?

WBOY
WBOY転載
2023-09-11 11:49:02712ブラウズ

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

実際には、MySQL はストアド プロシージャが作成された環境を保持します。これは、2 つのバーを使用して文字列を連結する次の例から理解できます。これは、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 はストアド プロシージャが作成された環境を保存しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。