Maison > base de données > tutoriel mysql > Comment écrire le curseur dans MySQL

Comment écrire le curseur dans MySQL

coldplay.xixi
Libérer: 2020-11-30 16:57:07
original
3001 Les gens l'ont consulté

La méthode d'écriture du curseur dans mysql : déclarez d'abord le curseur ; puis ouvrez le curseur, le code est [OPEN Cursor_name] ; puis capturez le curseur enfin, fermez le curseur, le code est [CLOSE Cursor_name].

Comment écrire le curseur dans MySQL

L'environnement d'exploitation de ce tutoriel : Système Windows 7, MySQL version 5.8 Cette méthode convient à toutes les marques d'ordinateurs.

Plus de recommandations d'apprentissage gratuites connexes : Tutoriel MySQL(vidéo)

Comment écrire un curseur dans MySQL :

1. Qu'est-ce qu'un curseur ?

Dans une procédure stockée ou une fonction, vous pouvez utiliser le curseur pour parcourir l'ensemble de résultats. Ce qui suit est mon opinion personnelle. Le curseur est similaire à la variable auto-incrémentée i dans la boucle Java.

2. L'utilisation du curseur

L'utilisation du curseur comprend les trois étapes suivantes :

1. Déclarer le curseur

Format : DECLARE cursor_name CURSOR FOR select_statement;

Cursor_name : nom du curseur, défini par l'utilisateur, il est préférable de connaître le nom.

  select_statement : Instruction de requête complète, noms de colonnes dans la table de requête (explication détaillée du cas ci-dessous).

2. Activez le curseur

curseur_name : Le nom du curseur une fois déclaré.

Format : OPEN cursor_name;

3. Capturer le curseur

Format : FETCH cursor_name INTO var_name...; (... signifie qu'il peut y en avoir plusieurs)

nom_curseur : Le nom du curseur une fois déclaré.

 var_name : Nom de la variable personnalisée. (Explication détaillée du cas plus tard)

4. Fermez le curseur

Format : CLOSE cursor_name;

curseur_name : Le nom du curseur une fois déclaré.

3, un petit cas d'utilisation du curseur

Ce cas n'a aucune signification pratique, juste pour démontrer l'utilisation du curseur

Créez d'abord un utilisateur Table

CREATE TABLE `users` (
  `u_id` int(4) NOT NULL,
  `u_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `u_age` int(4) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Copier après la connexion

Insérer les données suivantes

Créer une procédure stockée nommée select_age

BEGIN
    #Routine body goes here...
    declare i_user_id int;
    declare i_user_age int;
    declare cur_age cursor for select u_id,u_age from users;
    declare exit handler for not FOUND close cur_age;
    set @age_ji = 0;
    set @age_ou = 0;
    
    open cur_age;
    REPEAT
        fetch cur_age into i_user_id,i_user_age;
        if i_user_id%2 = 1 THEN
            set @age_ji = @age_ji + i_user_age; 
        else
            set @age_ou = @age_ou + i_user_age;
        end if;
    until 0 end REPEAT;
    close cur_age;
END
Copier après la connexion

Appeler la procédure stockée

call select_age();
select @age_ji,@age_ou;
Copier après la connexion

Explication détaillée du code :

1, définissez d'abord deux variables locales i_user_id et i_user_age utilisées pour stocker les colonnes de la table parcourues par le curseur ;

2. Déclarez un curseur pour parcourir les colonnes u_id et u_age dans la table des utilisateurs.

3, déclarez une exception et fermez le curseur lorsqu'une exception se produit.

4. Définissez deux variables utilisateur pour stocker les résultats finaux.

5, allumez le curseur.

6. Écrivez un corps de boucle. La condition terminale est de parcourir la dernière colonne du tableau.

7, capturez le curseur et placez le contenu parcouru dans deux variables locales.

8. En jugeant la parité de i_user_id, ajoutez respectivement i_user_age aux deux variables utilisateur

9.

4. Notes

Les variables, les exceptions personnalisées, la gestion des exceptions et les curseurs sont tous définis via le mot-clé declare, et il existe des exigences d'ordre entre eux. Les variables et les exceptions personnalisées doivent être placées en premier, suivies de la déclaration du curseur et enfin de la déclaration de gestion des exceptions.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal