gpt4 book ai didi

Mysql存储过程没有产生预期的结果

转载 作者:行者123 更新时间:2023-11-29 01:42:40 24 4
gpt4 key购买 nike

我有一个 mysql 存储过程 可以从一个表中获取值到另一个表中。当我调用存储过程时,它运行良好,但问题是,如果 当前列 值为 null,它是 inserting previous column 值。

示例:假设第二个员工姓名列为空,因为它在循环中运行,所以它在第二个员工姓名的位置插入第一个员工姓名,但我希望我的新表中的列值为如果我的 existing table 中的列值为 null,则为 null。下面是我的存储过程。

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

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

关于Mysql存储过程没有产生预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com