我想插入到一个表中,从另一个表中选择值,而一些带有参数。
CREATE PROCEDURE `insertuser`(
IN `param1` VARCHAR(50)
)
BEGIN
insert into users(firstname,lastname,email)
select name,nickname,@param1 from members
where id=3;
END
我填写了param1,但查询在电子邮件中插入了null 我该怎么办?
答案 0 :(得分:0)
@
符号用于定义Session variables(任何位置的Session均可访问)。您不需要在这里使用@
,因为您正在使用存储过程中的输入参数值。
请尝试以下操作:
DELIMITER $$
CREATE PROCEDURE `insertuser`(IN `param1` VARCHAR(50))
BEGIN
INSERT INTO users(firstname,lastname,email)
SELECT name,nickname,param1 -- remove @ from @param1 here
FROM members
WHERE id=3;
END$$
DELIMITER ;