0
TYPEID & 사용자 번호를 인수로 받아들이고 이 아닌/반환 된 사용 가능한 항목을 검색하는 저장 프로 시저를 만들려고합니다. 테이블 1과 테이블 2) 대출 테이블에 새로운 행을 삽입합니다. 그 전에 사용자가 금지 된 경우 을 확인하십시오 (표 3, SIGNAL을 사용하여 생각하기).저장 프로 시저 및 커서에 붙어있다
장 데이터 :
TABLE1:
+-----------+----------+
| CODE | TYPEID |
+-----------+----------+
| 441 | mn014 |
| 223 | mn014 |
| 224 | mn014 |
| 655 | mn089 |
| 854 | mn089 |
| 449 | mn032 |
+-----------+----------+
TABLE2:
+-----------+----------+----------+
| CODE | TAKENDTE | RTURNDTE |
+-----------+----------+----------+
| 441 | 25/08/14 | 01/01/15 |
| 223 | 25/08/14 | 03/01/15 |
| 223 | 25/08/14 | 01/02/15 |
| 223 | 25/08/14 | NULL |
| 655 | 25/08/14 | 07/01/15 |
| 854 | 25/08/14 | NULL |
| 449 | 25/08/14 | 06/01/15 |
+-----------+---------------------+
TABLE3:
+-----------+----------+----------+
| USERNO | NAME | BANNED |
+-----------+----------+----------+
| 111 | Bob | 0 |
| 112 | Sally | 1 |
| 113 | Jim | 0 |
| 114 | Billy | 0 |
| 115 | Jessica | 0 |
| 116 | Fred | 0 |
| 117 | Patrik | 0 |
+-----------+---------------------+
나는 내가 사용해야하지만 난이 문제를 해결할 수없는 오류를 얻고 무엇을 생각하는 커서를 사용 해봤 내가
지금까지 한 일이다DELIMITER $$
CREATE PROCEDURE new_entry(IN isbn_search CHAR(17), useNO INT)
BEGIN
DECLARE complete BOOLEAN DEFAULT FALSE;
DECLARE newEntry VARCHAR (30) DEFAULT ' ';
DECLARE S CURSOR FOR
select t1.*
from table1 t1
where typeid = 'mn014' and
not exists (select 1
from table2 t2
where t2.code = t.code and
t2.rturndte is null
);
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET complete = TRUE;
OPEN S;
SET newLoan = ' ';
sloop : LOOP
FETCH NEXT INTO newLoan;
IF complete THEN
LEAVE sloop;
END IF;
SET newLoan = CONCAT (code, isbn, duration);
CLOSE S;
END$$
DELIMITER ;
어떤 아이디어가 있습니까? 감사