2

mysql stored procedureあるテーブルから別のテーブルに値をフェッチする必要があります。ストアドプロシージャを呼び出すと正常に実行されますが、問題は、inserting previous columncurrent columnnull.

例:2番目の従業員名の列がnullであるとします。ループで実行されているため、2番目の従業員名の代わりに最初の従業員名を挿入していますが、私のnew table列の値がnullの場合、私の列の値をnullにしたいexisting tableです。ストアド プロシージャ。

CREATE  PROCEDURE `frstprocedure`()
BEGIN
DECLARE emp_name varchar(225);
DECLARE emp_age varchar(225);
DECLARE emp_dept varchar(225);

DECLARE masterCursor CURSOR for select empname,empage,empdept from Employee;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
SET done=0;
OPEN masterCursor;
my_loop: LOOP
FETCH masterCursor into emp_name,emp_age, emp_dept;
IF done THEN
CLOSE masterCursor;
LEAVE my_loop;
END IF;
insert into second_table values(emp_name,emp_age, emp_dept);
END LOOP my_loop;
END
4

2 に答える 2

1

default values変数の宣言中に設定することもできます。以下のコードを参照してください。

DECLARE emp_name varchar(225) default null;
DECLARE emp_age varchar(225) default null;
DECLARE emp_dept varchar(225) default null;
于 2013-04-09T10:37:23.420 に答える