Maison base de données tutoriel mysql MySql官方手册学习笔记3—MySql中的存储过程简介_MySQL

MySql官方手册学习笔记3—MySql中的存储过程简介_MySQL

Jun 01, 2016 pm 01:39 PM
存储 学习

bitsCN.com

SELECT INTO

CREATE PROCEDURE sp1 (x VARCHAR(5))    //创建储存过程

  BEGIN

    DECLARE xname VARCHAR(5) DEFAULT 'bob';      //声明局部变量

    DECLARE newname VARCHAR(5);

    DECLARE xid INT;

   

    SELECT xname,id INTO newname,xid      //将查到的属性值存入变量中

      FROM table1 WHERE xname = xname;

    SELECT newname;

  END;

变量名不能与列名一样,当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。

 

HANDLER

mysql> CREATE TABLE test.t (s1 int,primary key (s1));

Query OK, 0 rows affected (0.00 sec)

mysql> delimiter //  //将定界符“;”改为“//”,因为程序中需要用到“;”。

mysql> CREATE PROCEDURE handlerdemo ()

    -> BEGIN

    ->   DECLARE insertErr CONDITION FOR SQLSTATE '23000';  //声明CONDITION

    ->   DECLARE CONTINUE HANDLER FOR insertErr SET @x2 = 1;//声明HANDLER

    ->   SET @x = 1;  //为局部变量赋值

    ->   INSERT INTO test.t VALUES (1);

    ->   SET @x = 2;

    ->   INSERT INTO test.t VALUES (1);

    ->   SET @x = 3;

    -> END;

    -> //

Query OK, 0 rows affected (0.00 sec)

 

mysql> CALL handlerdemo()//

Query OK, 0 rows affected (0.00 sec)

 

mysql> SELECT @x//

    +------+

    | @x   |

    +------+

    | 3    |

    +------+

    1 row in set (0.00 sec)

注意到,@x是3,这表明MySQL被执行到程序的末尾。如果DECLARE CONTINUE HANDLER FOR insertErr SET @x2 = 1; 这一行不在,第二个INSERT因PRIMARY KEY强制而失败之后,MySQL可能已经采取 默认(EXIT)路径,并且SELECT @x可能已经返回2。

CURSOR

CREATE PROCEDURE curdemo()

BEGIN

  DECLARE done INT DEFAULT 0;

  DECLARE a CHAR(16);

  DECLARE b,c INT;

  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;

  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;

  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

 

  OPEN cur1; //使用前先打开游标

  OPEN cur2;

 

  REPEAT

    FETCH cur1 INTO a, b;  

    FETCH cur2 INTO c;

    IF NOT done THEN

       IF b

          INSERT INTO test.t3 VALUES (a,b);

       ELSE

          INSERT INTO test.t3 VALUES (a,c);

       END IF;

    END IF;

  UNTIL done END REPEAT;

 

  CLOSE cur1;

  CLOSE cur2;

END

 

 

CASE

 CASE case_value

    WHEN when_value THEN statement_list

    [WHEN when_value THEN statement_list] ...

    [ELSE statement_list]

END CASE

Or:

CASE

    WHEN search_condition THEN statement_list

    [WHEN search_condition THEN statement_list] ...

    [ELSE statement_list]

END CASE

存储程序的CASE语句实现一个复杂的条件构造。如果search_condition 求值为真,相应的SQL被执行。如果没有搜索条件匹配,在ELSE子句里的语句被执行。

 

 LEAVE

 LEAVE label

这个语句被用来退出任何被标注的流程控制构造。它和BEGIN ... END或循环一起被使用。

 

 ITERATE

 ITERATE label

 

ITERATE只可以出现在LOOP, REPEAT, 和WHILE语句内。ITERATE意思为:“再次循环。”

例如:

CREATE PROCEDURE doiterate(p1 INT)

BEGIN

  label1: LOOP

    SET p1 = p1 + 1;

    IF p1

    LEAVE label1;

  END LOOP label1;

  SET @x = p1;

END

REPEAT

mysql> delimiter //

 

mysql> CREATE PROCEDURE dorepeat(p1 INT)

    -> BEGIN

    ->   SET @x = 0;

    ->   REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;

    -> END

    -> //

Query OK, 0 rows affected (0.00 sec)

 

mysql> CALL dorepeat(1000)//

Query OK, 0 rows affected (0.00 sec)

 

mysql> SELECT @x//

+------+

| @x   |

+------+

| 1001 |

+------+

1 row in set (0.00 sec)

WHILE

CREATE PROCEDURE dowhile()

BEGIN

  DECLARE v1 INT DEFAULT 5;

 

  WHILE v1 > 0 DO

    ...

    SET v1 = v1 - 1;

  END WHILE;

EN

bitsCN.com
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Huawei lancera l'année prochaine des produits de stockage MED innovants : la capacité du rack dépasse 10 Po et la consommation électrique est inférieure à 2 kW Huawei lancera l'année prochaine des produits de stockage MED innovants : la capacité du rack dépasse 10 Po et la consommation électrique est inférieure à 2 kW Mar 07, 2024 pm 10:43 PM

Ce site Web a rapporté le 7 mars que le Dr Zhou Yuefeng, président de la gamme de produits de stockage de données de Huawei, a récemment assisté à la conférence MWC2024 et a spécifiquement présenté la solution de stockage magnétoélectrique OceanStorArctic de nouvelle génération conçue pour les données chaudes (WarmData) et les données froides (ColdData). Zhou Yuefeng, président de la gamme de produits de stockage de données de Huawei, a publié une série de solutions innovantes Source de l'image : Le communiqué de presse officiel de Huawei joint à ce site est le suivant : Le coût de cette solution est 20 % inférieur à celui de la bande magnétique, et son coût est de 20 % inférieur à celui de la bande magnétique. la consommation électrique est 90 % inférieure à celle des disques durs. Selon les médias technologiques étrangers blockandfiles, un porte-parole de Huawei a également révélé des informations sur la solution de stockage magnétoélectrique : le disque magnétoélectronique (MED) de Huawei est une innovation majeure dans le domaine des supports de stockage magnétiques. ME de première génération

Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Jan 16, 2024 am 09:01 AM

Plus besoin de pip ? Venez apprendre à désinstaller pip efficacement ! Introduction : pip est l'un des outils de gestion de packages Python, qui peut facilement installer, mettre à niveau et désinstaller les packages Python. Cependant, nous devrons parfois désinstaller pip, peut-être parce que nous souhaitons utiliser un autre outil de gestion de packages, ou parce que nous devons vider complètement l'environnement Python. Cet article explique comment désinstaller pip efficacement et fournit des exemples de code spécifiques. 1. Méthodes de désinstallation de pip Ce qui suit présente deux méthodes courantes de désinstallation de pip.

Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Feb 24, 2024 pm 11:21 PM

Le charme de l'apprentissage du langage C : libérer le potentiel des programmeurs Avec le développement continu de la technologie, la programmation informatique est devenue un domaine qui a beaucoup attiré l'attention. Parmi les nombreux langages de programmation, le langage C a toujours été apprécié des programmeurs. Sa simplicité, son efficacité et sa large application font de l’apprentissage du langage C la première étape pour de nombreuses personnes souhaitant entrer dans le domaine de la programmation. Cet article discutera du charme de l’apprentissage du langage C et de la manière de libérer le potentiel des programmeurs en apprenant le langage C. Tout d’abord, le charme de l’apprentissage du langage C réside dans sa simplicité. Comparé à d'autres langages de programmation, le langage C

Premiers pas avec Pygame : didacticiel complet d'installation et de configuration Premiers pas avec Pygame : didacticiel complet d'installation et de configuration Feb 19, 2024 pm 10:10 PM

Apprenez Pygame à partir de zéro : didacticiel complet d'installation et de configuration, exemples de code spécifiques requis Introduction : Pygame est une bibliothèque de développement de jeux open source développée à l'aide du langage de programmation Python. Elle fournit une multitude de fonctions et d'outils, permettant aux développeurs de créer facilement une variété de types. de jeu. Cet article vous aidera à apprendre Pygame à partir de zéro et fournira un didacticiel complet d'installation et de configuration, ainsi que des exemples de code spécifiques pour vous permettre de démarrer rapidement. Première partie : Installer Python et Pygame Tout d'abord, assurez-vous d'avoir

Processus d'installation de Git sur Ubuntu Processus d'installation de Git sur Ubuntu Mar 20, 2024 pm 04:51 PM

Git est un système de contrôle de version distribué rapide, fiable et adaptable. Il est conçu pour prendre en charge des flux de travail distribués et non linéaires, ce qui le rend idéal pour les équipes de développement de logiciels de toutes tailles. Chaque répertoire de travail Git est un référentiel indépendant avec un historique complet de toutes les modifications et la possibilité de suivre les versions même sans accès au réseau ni serveur central. GitHub est un référentiel Git hébergé sur le cloud qui fournit toutes les fonctionnalités du contrôle de révision distribué. GitHub est un référentiel Git hébergé sur le cloud. Contrairement à Git qui est un outil CLI, GitHub dispose d'une interface utilisateur graphique basée sur le Web. Il est utilisé pour le contrôle de version, ce qui implique de collaborer avec d'autres développeurs et de suivre les modifications apportées aux scripts et aux scripts au fil du temps.

Apprenons ensemble à saisir le numéro racine dans Word Apprenons ensemble à saisir le numéro racine dans Word Mar 19, 2024 pm 08:52 PM

Lors de la modification du contenu du texte dans Word, vous devez parfois saisir des symboles de formule. Certains gars ne savent pas comment saisir le numéro racine dans Word, alors Xiaomian m'a demandé de partager avec mes amis un tutoriel sur la façon de saisir le numéro racine dans Word. J'espère que cela aidera mes amis. Tout d'abord, ouvrez le logiciel Word sur votre ordinateur, puis ouvrez le fichier que vous souhaitez modifier et déplacez le curseur vers l'emplacement où vous devez insérer le signe racine, reportez-vous à l'exemple d'image ci-dessous. 2. Sélectionnez [Insérer], puis sélectionnez [Formule] dans le symbole. Comme indiqué dans le cercle rouge dans l'image ci-dessous : 3. Sélectionnez ensuite [Insérer une nouvelle formule] ci-dessous. Comme indiqué dans le cercle rouge dans l'image ci-dessous : 4. Sélectionnez [Formule radicale], puis sélectionnez le signe racine approprié. Comme le montre le cercle rouge sur l'image ci-dessous :

Comment utiliser correctement sessionStorage pour protéger les données sensibles Comment utiliser correctement sessionStorage pour protéger les données sensibles Jan 13, 2024 am 11:54 AM

Comment utiliser correctement sessionStorage pour stocker des informations sensibles nécessite des exemples de code spécifiques Que ce soit dans le développement Web ou le développement d'applications mobiles, nous devons souvent stocker et traiter des informations sensibles, telles que les informations de connexion des utilisateurs, les numéros d'identification, etc. Dans le développement front-end, l'utilisation de sessionStorage est une solution de stockage courante. Cependant, étant donné que sessionStorage est un stockage basé sur un navigateur, certains problèmes de sécurité doivent être pris en compte pour garantir que les informations sensibles stockées ne soient pas consultées et utilisées de manière malveillante.

Apprenez la fonction principale du langage Go à partir de zéro Apprenez la fonction principale du langage Go à partir de zéro Mar 27, 2024 pm 05:03 PM

Titre : Apprenez la fonction principale du langage Go à partir de zéro. En tant que langage de programmation simple et efficace, le langage Go est privilégié par les développeurs. Dans le langage Go, la fonction principale est une fonction d'entrée, et chaque programme Go doit contenir la fonction principale comme point d'entrée du programme. Cet article explique comment apprendre la fonction principale du langage Go à partir de zéro et fournit des exemples de code spécifiques. 1. Tout d’abord, nous devons installer l’environnement de développement du langage Go. Vous pouvez aller sur le site officiel (https://golang.org

See all articles