Maison  >  Article  >  base de données  >  Comment utiliser des procédures stockées pour créer des tables dans MySQL

Comment utiliser des procédures stockées pour créer des tables dans MySQL

PHPz
PHPzoriginal
2023-04-17 16:40:271370parcourir

MySQL, en tant que base de données relationnelle couramment utilisée, offre une richesse de fonctions et de syntaxes, parmi lesquelles les procédures stockées sont l'une des fonctions les plus pratiques. Les procédures stockées sont plus pratiques et plus flexibles que l'écriture directe d'instructions SQL, et elles peuvent également améliorer la lisibilité et la maintenabilité du code. Cet article explique comment créer des tables de base de données MySQL via des procédures stockées.

【Introduction aux procédures stockées】

Les procédures stockées sont des programmes exécutables précompilés et stockés dans la base de données. Elles peuvent être appelées et exécutées plusieurs fois, contrairement aux fonctions créées par l'utilisateur, les procédures stockées ne renvoient pas de résultats, mais communiquent avec le. appelant via les paramètres d’entrée et de sortie. Dans MySQL, les procédures stockées sont composées d'instructions SQL et de certaines instructions de contrôle de flux. Elles sont généralement utilisées pour traiter des données ou effectuer certaines tâches spécifiques.

【Déclaration de création de table MySQL】

L'instruction de création de table MySQL ordinaire est la suivante :

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

Il s'agit d'une instruction de création de table MySQL conventionnelle, mais si nous devons ajouter des conditions spéciales pour répondre à certaines des exigences pendant la table processus de création, les exigences commerciales peuvent être satisfaites via des procédures stockées.

【Déclaration de création de table de procédure stockée】

Voyons comment créer une table MySQL via une procédure stockée. Nous allons le démontrer avec un exemple simple.

Tout d'abord, nous devons créer une procédure stockée, le code est le suivant :

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 ;

Dans la procédure stockée ci-dessus, nous utilisons CREATE PROCEDURE pour définir une fonction nommée create_person_table() La procédure stockée, où <code>DECLARE exit handler for sqexception signifie que lorsqu'une exception se produit, elle doit revenir à l'état précédent et renvoyer "Failed!"; code> et COMMIT sont utilisés pour ouvrir et valider des transactions ; le champ created_at est ajouté à l'instruction de création de table, qui représente l'heure de création, et la valeur par défaut est l'heure actuelle. temps. 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

Dans la procédure stockée, nous utilisons l'instruction SELECT pour renvoyer le résultat de l'exécution. Lorsque la procédure stockée est exécutée avec succès, « Succeed ! » sera renvoyé, sinon « Failed ! » sera renvoyé.

Une fois la procédure stockée créée avec succès, nous pouvons l'appeler via la commande CALL :

rrreee

Si la procédure stockée est exécutée avec succès, "Réussir sera renvoyé et une personne nommée person

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn