Mysql 为什么这个过程抛出';未知列';错误

Mysql 为什么这个过程抛出';未知列';错误,mysql,stored-procedures,Mysql,Stored Procedures,我有此过程,但这会引发“未知列”错误 USE dhod; DELIMETER @@ CREATE PROCEDURE sp_drive_size(IN uname VARCHAR(100),IN size INT) BEGIN DECLARE dsize INT DEFAULT 0; DECLARE new_size INT DEFAULT 0; SELECT drive_size INTO dsize FROM profile WHERE username = unam

我有此过程,但这会引发“未知列”错误

USE dhod;
DELIMETER @@
CREATE PROCEDURE sp_drive_size(IN uname VARCHAR(100),IN size INT)
BEGIN
    DECLARE dsize INT DEFAULT 0;
    DECLARE new_size INT DEFAULT 0;
    SELECT drive_size INTO dsize FROM profile WHERE username = uname;
    SET new_size=dsize+size;
    UPDATE profile SET drive_size=new_size WHERE username = uname; 
END @@ 
DELIMETER ;
我得到了这个错误
where子句中的未知列“uname”

建议:尝试去掉起始和结束分隔符,看看是否可以修复它?我在网上找到的示例顶部只有分隔符,但还没有看到底部有第二个示例。

这是您的原始代码

USE dhod;
DELIMETER @@
CREATE PROCEDURE sp_drive_size(IN uname VARCHAR(100),IN size INT)
BEGIN
    DECLARE dsize INT DEFAULT 0;
    DECLARE new_size INT DEFAULT 0;
    SELECT drive_size INTO dsize FROM profile WHERE username = uname;
    SET new_size=dsize+size;
    UPDATE profile SET drive_size=new_size WHERE username = uname; 
END @@ 
DELIMETER ;
你会相信你拼错了DELIMETER吗

它应该是分隔符(我会将其更改为$$)


我想在第二个例子中,
END@
应该改为
END$$
USE dhod;
DELIMITER $$
CREATE PROCEDURE sp_drive_size(IN uname VARCHAR(100),IN size INT)
BEGIN
    DECLARE dsize INT DEFAULT 0;
    DECLARE new_size INT DEFAULT 0;
    SELECT drive_size INTO dsize FROM profile WHERE username = uname;
    SET new_size=dsize+size;
    UPDATE profile SET drive_size=new_size WHERE username = uname; 
END $$
DELIMITER ;