Um eine gespeicherte Prozedur in MySQL zu erstellen, verwenden Sie die Anweisung CREATE PROCEDURE
. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie dies zu tun ist:
CREATE PROCEDURE
gefolgt vom Namen Ihrer Prozedur.IN
, OUT
oder INOUT
haben, und jeder Parameter benötigt einen Datentyp.BEGIN
und END
eingeschlossen. In diesem Block schreiben Sie die SQL -Anweisungen, die die Prozedur ausführen wird.;
) als Anweisung Terminator. Bei der Erstellung gespeicherter Verfahren müssen Sie diesen Trennzeichen jedoch vorübergehend ändern, um Konflikte mit den im Verfahrensgremium verwendeten Semikolons zu vermeiden. Normalerweise werden //
oder $$
als alternative Grenzwerte verwendet.Hier ist ein Beispiel dafür, wie Sie eine einfache gespeicherte Prozedur erstellen:
<code class="sql">DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT * FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
In diesem Beispiel ist GetEmployeeData
ein Verfahren, das einen employeeID
als Eingabeparameter einnimmt und alle Daten für diesen Mitarbeiter aus der employees
zurückgibt.
MySQL -gespeicherte Prozeduren können Parameter verschiedener Typen und Modi enthalten. Die Parameter können in drei Modi eingeteilt werden:
IN
-Parameter können Sie einen Wert in die Prozedur übergeben. Die Prozedur kann diesen Wert lesen, kann ihn jedoch nicht ändern.OUT
-Parameter ermöglicht es dem Verfahren, einen Wert an die Anrufumgebung zurückzugeben. Die Prozedur kann den Wert eines OUT
-Parameters ändern, und der geänderte Wert ist nach der Verfahrensausführung zugänglich.INOUT
-Parameter kombiniert die Eigenschaften von IN
und OUT
. Sie können einen Wert in die Prozedur übergeben und die Prozedur auch den Wert ändern und an die aufrufende Umgebung zurücksenden. Parameter können auch Datentypen wie INT
, VARCHAR
, DATE
usw. enthalten, die bei der Deklaration angegeben werden sollten. Hier ist ein Beispiel für eine gespeicherte Prozedur mit allen drei Arten von Parametern:
<code class="sql">DELIMITER // CREATE PROCEDURE ProcessEmployeeData( IN empID INT, OUT empName VARCHAR(100), INOUT empSalary DECIMAL(10, 2) ) BEGIN SELECT first_name, last_name INTO empName FROM employees WHERE id = empID; UPDATE employees SET salary = empSalary 1000 WHERE id = empID; SELECT salary INTO empSalary FROM employees WHERE id = empID; END // DELIMITER ;</code>
Um eine vorhandene gespeicherte Prozedur in MySQL zu ändern, verwenden Sie die ALTER PROCEDURE
. ALTER PROCEDURE
beschränkt sich jedoch darauf, bestimmte Attribute des Verfahrens zu ändern, z. B. seine Merkmale (wie Sicherheitskontext oder SQL -Sicherheit). Um den tatsächlichen Code oder die tatsächliche Logik innerhalb der Prozedur zu ändern, müssen Sie die DROP PROCEDURE
verwenden und Prozeduranweisungen CREATE PROCEDURE
.
Hier erfahren Sie, wie es geht:
<code class="sql">DROP PROCEDURE IF EXISTS ProcedureName;</code>
<code class="sql">DELIMITER // CREATE PROCEDURE ProcedureName( -- Parameters ) BEGIN -- New procedure body END // DELIMITER ;</code>
Wenn Sie beispielsweise das GetEmployeeData
-Verfahren aktualisieren möchten, um nur die ersten und Nachnamen eines Mitarbeiters zurückzugeben, würden Sie Folgendes tun:
<code class="sql">DROP PROCEDURE IF EXISTS GetEmployeeData; DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT first_name, last_name FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
Speichernde Verfahren bieten mehrere Vorteile für das Datenbankmanagement in MySQL:
Durch die Nutzung dieser Vorteile können gespeicherte Verfahren die Effizienz und Sicherheit des Datenbankmanagements in MySQL erheblich verbessern.
Das obige ist der detaillierte Inhalt vonWie erstellen Sie eine gespeicherte Prozedur in MySQL mithilfe der Anweisung erstellen Procedure?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!