我有一个mysql stored procedure从一个表获取值到另一个表。当我调用存储过程时,它运行良好,但问题是,如果inserting previous column值是current column的话,它就是null值。
示例:假设第二个employee name列为空,因为它正在循环中运行,所以它将第一个employee name插入到第二个employee name的位置,但是如果mynew table中的列值为空,我希望myexisting 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

最佳答案

尝试在存储过程中添加以下行after insert statement

SET emp_name=null;
SET emp_age=null;
SET emp_dept-null

这将在每次迭代中将所有字段值初始化为空,因此将存储正确的值。

10-04 22:24
查看更多