>  기사  >  데이터 베이스  >  MySQL 커서가 데이터 문제 및 해결 방법을 찾을 수 없습니다.

MySQL 커서가 데이터 문제 및 해결 방법을 찾을 수 없습니다.

零下一度
零下一度원래의
2017-05-12 11:04:412847검색

며칠 전 mysql 커서가 데이터를 찾을 수 없는 문제를 겪었습니다. 이 문제로 인해 이틀 동안 괴로움을 겪었는데, 이제 드디어 해결되었습니다. .

테이블 생성문입니다. 두 행의 데이터를 삽입합니다.

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


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();

의 테이블 데이터를 쿼리합니다. 실행 결과는 다음과 같습니다.

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

위에 오류가 있습니다: 1048(23000): 'name' 열은 비워둘 수 없습니다.

어디서 오류인지 모르겠습니다. , 왜
에서 데이터를 가져올 수 없나요? 이틀이 지났는데 이제야 알겠어요. l은 다음과 같이 변경되어야 합니다.

testinfo 값(@a, @b)을 삽입하고 testinfo 값(a, b)을 삽입하도록 변경합니다.
변수 a, b를 입력한 후 통과 커서는 값을 지정하지만 @a, @b에는 값을 지정하지 않습니다...

그래서 문제가 발생하면 다음과 같이 하면 쉽게 해결할 수 있습니다. 주의 깊게 살펴보세요.

[관련 추천]

1. 무료 mysql 온라인 동영상 튜토리얼

MySQL 최신 매뉴얼 튜토리얼

3. 데이터베이스 설계에 관한 사항

위 내용은 MySQL 커서가 데이터 문제 및 해결 방법을 찾을 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.