我希望能夠傳遞參數給存儲過程,所以我搜索網,遇到這樣的事情:MySQL的存儲過程@語法錯誤
DELIMITER $$
CREATE PROCEDURE addTmpUser
@id varchar(10)
AS
BEGIN
//some sql code
END$$
DELIMITER ;
的問題是,我得到了一個語法錯誤@
字符。
說明:我正在使用MySQL db。
我希望能夠傳遞參數給存儲過程,所以我搜索網,遇到這樣的事情:MySQL的存儲過程@語法錯誤
DELIMITER $$
CREATE PROCEDURE addTmpUser
@id varchar(10)
AS
BEGIN
//some sql code
END$$
DELIMITER ;
的問題是,我得到了一個語法錯誤@
字符。
說明:我正在使用MySQL db。
你混合變量類型。
@variable
是一個具有整個連接範圍的用戶變量。
存儲過程中的變量看起來不同,它們之前沒有@。
另外,您需要聲明它們。這裏是一個例子
DELIMITER $$
CREATE PROCEDURE addTmpUser(p_id varchar(10))
-- the variable is named p_id as a nameing convention.
-- It is easy for variables to be mixed up with column names otherwise.
BEGIN
DECLARE innerVariable int;
insert into user (id) values (p_id);
-- return all users
select * from user;
END$$
DELIMITER ;
-- and now call it
call addTmpUser(10);
您需要使用IN
,OUT
,INOUT
來指定參數。所以,你可以試試這個
DELIMITER $$
CREATE PROCEDURE addTmpUser (IN id VARCHAR(10))
BEGIN
//some sql code
END$$
DELIMITER ;
@id varchar(10); – tommasop
增加了';',但仍然是相同的錯誤 – vlio20