Maison  >  Article  >  base de données  >  Le curseur Mysql ne trouve pas le problème de données et la solution

Le curseur Mysql ne trouve pas le problème de données et la solution

零下一度
零下一度original
2017-05-12 11:04:412847parcourir

Il y a quelques jours, j'ai rencontré un problème de curseur mysql incapable de trouver des données. Ce problème m'a dérangé pendant deux jours, et maintenant je l'ai enfin résolu, je vais le partager avec vous ci-dessous. .

Ceci est une instruction de création de table, insérez deux lignes de données

drop table如果存在testinfo;
创建表testinfo
(
name varchar(10)not null,
年龄int
);
truncate table testinfo;
插入testinfo()值('你',15);
插入testinfo()值('me',20);

Interrogez les données de la table de

mysql> select name,age from testinfo; 
+ ------ + ------ + 
| 名称| 年龄| 
+ ------ + ------ + 
| 你| 15 | 
| 我| 20 | 
+ ------ + ------ + 
这是使用游标的存储过程 
drop procedure if exists test_proc;
分隔符//
创建过程test_proc()
开始
DECLARE done int default false;
DECLARE一个char(10);
DECLARE b int;
DECLARE cur1游标用于选择名称,age from testinfo;
DECLARE继续处理SQLSTATE'02000'set done = true;
打开cur1;
read_loop:loop
        FETCh cur1进入a,b;
        如果这样做了
                离开read_loop
        万一;
        选择@ a,@ b;
        插入testinfo值(@ a,@ b);
端环;
关闭cur1;
结束
//
分隔符
调用test_proc();

Le résultat de l'exécution est le suivant

mysql> \。/opt/mysql/test_proc.sql 
查询行,受影响的0行,1个警告(0.00秒) 
查询行,受影响(0.02秒)0行 
+ ------ + ------ + 
| @a | @b | 
+ ------ + ------ + 
| NULL | NULL | 
+ ------ + ------ + 
1行集(0.00秒)

Il y a une erreur dans ce qui précède : 1048 (23000) : La colonne 'nom' ne peut pas être vide

Je ne le fais pas' Je ne sais pas où est l'erreur, pourquoi prendre
Aucune donnée ? Cela fait deux jours, et maintenant je sais enfin. Il devrait être modifié comme ceci, l est comme suit :

Insérez la valeur testinfo (@ a, @ b); changez-la pour insérer la valeur testinfo (a, b)
déclarez. les variables a, b, puis passent Le curseur lui attribue une valeur, mais il n'attribue pas de valeur à @a, @b...

Donc si vous rencontrez un problème, cela peut être facilement résolu si vous regardez attentivement.

[Recommandations associées]

1. Tutoriel vidéo en ligne MySQL gratuit

2. Dernier tutoriel manuel MySQL

.

3. Choses sur la conception de bases de données

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