Heim  >  Artikel  >  Datenbank  >  So verwenden Sie gespeicherte Prozeduren zum Erstellen von Tabellen in MySQL

So verwenden Sie gespeicherte Prozeduren zum Erstellen von Tabellen in MySQL

PHPz
PHPzOriginal
2023-04-17 16:40:271383Durchsuche

MySQL bietet als häufig verwendete relationale Datenbank eine Fülle von Funktionen und Syntax, unter denen gespeicherte Prozeduren eine der sehr praktischen Funktionen sind. Gespeicherte Prozeduren sind bequemer und flexibler als das direkte Schreiben von SQL-Anweisungen und können außerdem die Lesbarkeit und Wartbarkeit des Codes verbessern. In diesem Artikel wird erläutert, wie Sie MySQL-Datenbanktabellen mithilfe gespeicherter Prozeduren erstellen.

【Einführung in gespeicherte Prozeduren】

Gespeicherte Prozeduren sind ausführbare Programme, die vorkompiliert und in der Datenbank gespeichert werden. Sie können im Gegensatz zu vom Benutzer erstellten Funktionen mehrmals aufgerufen und ausgeführt werden, sondern kommunizieren mit dem Aufrufer über Eingabe- und Ausgabeparameter. In MySQL bestehen gespeicherte Prozeduren aus SQL-Anweisungen und einigen Flusskontrollanweisungen. Sie werden normalerweise zum Verarbeiten von Daten oder zum Ausführen bestimmter Aufgaben verwendet.

【Anweisung zur Erstellung einer MySQL-Tabelle】

Die normale Anweisung zur Erstellung einer MySQL-Tabelle lautet wie folgt:

CREATE TABLE person (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  address VARCHAR(100) NOT NULL
);

Dies ist eine herkömmliche Anweisung zur Erstellung einer MySQL-Tabelle, wir müssen jedoch einige spezielle Bedingungen hinzufügen, um einige der Anforderungen während der Tabelle zu erfüllen Im Erstellungsprozess können Geschäftsanforderungen durch gespeicherte Prozeduren erfüllt werden.

【Anweisung zur Erstellung einer Tabelle mit gespeicherten Prozeduren】

Schauen wir uns an, wie man eine MySQL-Tabelle mit einer gespeicherten Prozedur erstellt. Wir werden es anhand eines einfachen Beispiels demonstrieren.

Zuerst müssen wir eine gespeicherte Prozedur erstellen. Der Code lautet wie folgt:

DELIMITER $$
CREATE PROCEDURE create_person_table()
BEGIN
  DECLARE exit handler for sqlexception
  BEGIN
    ROLLBACK;
    SELECT 'Failed!';
  END;
  
  START TRANSACTION;
    CREATE TABLE person (
      id INT AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(50) NOT NULL,
      age INT NOT NULL,
      address VARCHAR(100) NOT NULL,
      created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
    );
  COMMIT;
  
  SELECT 'Succeed!';
END$$
DELIMITER ;

In der oben genannten gespeicherten Prozedur verwenden wir CREATE PROCEDURE, um eine Funktion namens create_person_table() Gespeicherte Prozedur, wobei <code>DECLARE Exit-Handler für sqception bedeutet, dass beim Auftreten einer Ausnahme ein Rollback zum vorherigen Status durchgeführt werden muss und „Failed!“ zurückgegeben werden muss > und COMMIT wird zum Öffnen und Festschreiben von Transaktionen verwendet; das Feld created_at wird zur Tabellenerstellungsanweisung hinzugefügt, die die Erstellungszeit darstellt, und der Standardwert ist die aktuelle Zeit . CREATE PROCEDURE 定义了一个名为 create_person_table() 的存储过程,其中 DECLARE exit handler for sqlexception 表示在出现异常时需要回滚到之前的状态,并返回“Failed!”;START TRANSACTIONCOMMIT 用于开启和提交事务;创建表的语句中增加了 created_at 字段,该字段表示创建时间,默认值为当前时间。

在存储过程中,我们使用 SELECT 语句返回执行结果。当存储过程执行成功时,将返回“Succeed!”,否则返回“Failed!”。

存储过程创建成功后,我们可以通过 CALL 命令来调用它:

CALL create_person_table();

如果存储过程执行成功,将返回“Succeed!”,并创建一个名为 person

In der gespeicherten Prozedur verwenden wir die Anweisung SELECT, um die Ausführungsergebnisse zurückzugeben. Wenn die gespeicherte Prozedur erfolgreich ausgeführt wird, wird „Erfolgreich!“ zurückgegeben, andernfalls wird „Fehlgeschlagen!“ zurückgegeben.

Nachdem die gespeicherte Prozedur erfolgreich erstellt wurde, können wir sie über den Befehl CALL aufrufen:

rrreee

Wenn die gespeicherte Prozedur erfolgreich ausgeführt wurde, wird „Erfolgreich!“ zurückgegeben und eine Person namens Person

Das obige ist der detaillierte Inhalt vonSo verwenden Sie gespeicherte Prozeduren zum Erstellen von Tabellen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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