Maison > Article > base de données > Comment écrire le curseur dans MySQL
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].
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;
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
Appeler la procédure stockée
call select_age(); select @age_ji,@age_ou;
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!