mysql 22001_关于mysql中的游标的使用,如下面代码所示为何会提示:ERROR 1406 (22001): Data too long for column...

mysql>delimiter//mysql>createprocedureoldest(outoldestint)->begin->declarethis_namechar;->declarethis_ageint;->declarel_namechar;->declarel_ageintdefault0;->declaredonein...

mysql> delimiter //

mysql> create procedure oldest(out oldest int)

-> begin

-> declare this_name char;

-> declare this_age int;

-> declare l_name char;

-> declare l_age int default 0;

-> declare done int default 0;

-> declare a1 cursor for select name,age from boom;

-> declare continue handler for sqlstate '02000' set done=1

-> open a1;

-> repeat

-> fetch a1 into this_name,this_age;

-> if not done then

-> if this_age>l_age then

-> set l_age=this_age;

-> set l_name=this_name;

-> end if;

-> end if;

-> until done end repeat;

-> close a1;

-> set oldest=l_name;

-> end

-> //

Query OK, 0 rows affected (0.04 sec)

mysql> call oldest(@q)//

ERROR 1406 (22001): Data too long for column 'this_name' at row

mysql> describe boom;

-> //

+---------+------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+------------------+------+-----+---------+-------+

| name | char(20) | NO | PRI | NULL | |

| age | int(10) unsigned | NO | | NULL | |

| address | char(100) | NO | | NULL | |

| email | char(50) | NO | | NULL | |

+---------+------------------+------+-----+---------+-------+

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值