Heim > Datenbank > MySQL-Tutorial > Was ist der Befehl zum Ändern gespeicherter Prozeduren in MySQL?

Was ist der Befehl zum Ändern gespeicherter Prozeduren in MySQL?

青灯夜游
Freigeben: 2020-10-12 09:58:28
Original
3777 Leute haben es durchsucht

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.

Was ist der Befehl zum Ändern gespeicherter Prozeduren in MySQL?

(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 存储过程名 [ 特征 ... ]
Nach dem Login kopieren

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

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

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!

Verwandte Etiketten:
Quelle:php.cn
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage