簡體   English   中英

MySQL存儲過程@語法錯誤

[英]MySQL stored procedure @ syntax error

我希望能夠將參數傳遞給存儲過程,因此我在網上搜索並遇到了如下情況:

DELIMITER $$
CREATE PROCEDURE addTmpUser 
@id varchar(10)
AS
BEGIN
    //some sql code
END$$

DELIMITER ; 

問題是我收到@字符的語法錯誤。

注意:我正在使用MySQL數據庫。

您需要使用INOUTINOUT來指定參數。 所以你可以試試看

DELIMITER $$
CREATE PROCEDURE addTmpUser (IN id VARCHAR(10))
BEGIN
    //some sql code
END$$

DELIMITER ;

查看文檔

您正在混合變量類型。
@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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM