Der Befehl zum Ändern der gespeicherten Prozedur in MySQL lautet „ALTER PROCEDURE“, das Syntaxformat lautet „ALTER PROCEDURE Name der gespeicherten Prozedur [Merkmal ...]“, die möglichen Werte des Merkmals sind CONTAINS SQL, NO SQL, INVOKER, DEFINER usw.
(Empfohlenes Tutorial: MySQL-Video-Tutorial)
Im tatsächlichen Entwicklungsprozess werden Geschäftsanforderungen von Zeit zu Zeit geändert, sodass eine Änderung der gespeicherten Prozeduren in MySQL unvermeidlich ist.
In MySQL werden gespeicherte Prozeduren durch die ALTER PROCEDURE-Anweisung geändert. In diesem Abschnitt wird ausführlich erläutert, wie die gespeicherte Prozedur geändert wird.
Das Syntaxformat zum Ändern gespeicherter Prozeduren in MySQL lautet wie folgt:
ALTER PROCEDURE 存储过程名 [ 特征 ... ]
Characteristics geben die Eigenschaften der gespeicherten Prozedur an:
CONTAINS SQL bedeutet, dass die Unterroutine SQL-Anweisungen enthält, aber beinhaltet nicht das Lesen oder Schreiben von Datenanweisungen.
NO SQL bedeutet, dass die Unterroutine keine SQL-Anweisungen enthält.
READS SQL DATA gibt an, dass die Unterroutine Anweisungen zum Lesen von Daten enthält.
MODIFIES SQL DATA zeigt an, dass die Subroutine Anweisungen zum Schreiben von Daten enthält.
SQL SECURITY { DEFINER |INVOKER } gibt an, wer die Berechtigung zur Ausführung hat.
DEFINER bedeutet, dass nur der Definierer es ausführen kann.
INVOKER bedeutet, dass der Anrufer ausführen kann.
COMMENT 'string' stellt Kommentarinformationen dar.
Beispiel 1
Ändern Sie die Definition der unten aufgeführten gespeicherten Prozedur, ändern Sie die Lese- und Schreibberechtigungen in „Ändert SQL-Daten“ und geben Sie an, dass der Aufrufer sie ausführen kann:
mysql> ALTER PROCEDURE showstuscore MODIFIES SQL DATA SQL SECURITY INVOKER; Query OK, 0 rows affected (0.01 sec)
Ausführen Öffnen Sie den Code und sehen Sie sich die geänderten Informationen an. Die laufenden Ergebnisse lauten wie folgt:
mysql> SHOW CREATE PROCEDURE showstuscore \G *************************** 1. row *************************** Procedure: showstuscore sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `showstuscore`() MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN SELECT id,name,score FROM studentinfo; END character_set_client: gbk collation_connection: gbk_chinese_ci Database Collation: latin1_swedish_ci 1 row in set (0.00 sec)
Die Ergebnisse zeigen, dass die gespeicherte Prozedur erfolgreich geändert wurde. Anhand der laufenden Ergebnisse können wir erkennen, dass sich die Berechtigung zum Zugriff auf die Daten in „MODIFIES SQL DATA“ geändert hat und dass sich auch der Sicherheitstyp in „INVOKE“ geändert hat.
Tipp: Die ALTER PROCEDURE-Anweisung wird verwendet, um bestimmte Eigenschaften der gespeicherten Prozedur zu ändern. Wenn Sie den Inhalt einer gespeicherten Prozedur ändern möchten, können Sie zuerst die ursprüngliche gespeicherte Prozedur löschen und dann eine neue gespeicherte Prozedur mit demselben Namen erstellen. Wenn Sie den Namen der gespeicherten Prozedur ändern möchten, können Sie das Original löschen Erstellen Sie zunächst eine gespeicherte Prozedur und erstellen Sie dann eine neue gespeicherte Prozedur mit einem anderen Namen.
Verwandte Empfehlungen: php-Training
Das obige ist der detaillierte Inhalt vonWas ist der Befehl zum Ändern gespeicherter Prozeduren in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!