Heim > Datenbank > MySQL-Tutorial > Hauptteil

Bewahrt MySQL die Umgebung, in der gespeicherte Prozeduren erstellt werden?

WBOY
Freigeben: 2023-09-11 11:49:02
nach vorne
733 Leute haben es durchsucht

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

Tatsächlich behält MySQL die Umgebung bei, als die gespeicherte Prozedur erstellt wurde. Dies kann anhand des folgenden Beispiels verstanden werden, in dem wir zwei Balken verwenden, um Zeichenfolgen zu verketten. Dies ist nur zulässig, wenn der SQL-Modus Ansi ist. Wenn wir jedoch den SQL-Modus auf „Nicht-ANSI“ ändern, funktioniert der Vorgang immer noch so, als ob die ursprüngliche Einstellung noch wahr wäre.

Beispiel

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)
Nach dem Login kopieren

Der obige Ergebnissatz zeigt, dass die Prozedur Con_string() auch nach dem Ändern des SQL-Modus in Nicht-ANSI immer noch die gleichen Ergebnisse liefert, als ob der SQL-Modus immer noch AnSI wäre. Das neue Programm akzeptiert jedoch nicht beide Balken, da wir den SQL-Modus auf Nicht-ANSI geändert haben.

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)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBewahrt MySQL die Umgebung, in der gespeicherte Prozeduren erstellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage