0

私はこの手順を持っていますが、これは「不明な列」エラーをスローします

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 ;

私はこのエラーを取得 しています 不明な列 'uname' in 'where clause'

4

2 に答える 2

1

これが元のコードです

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 のスペルが間違っていると思いますか ???

DELIMITER にする必要があります (私は $$ に変更します)

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 ;
于 2012-07-10T19:35:00.913 に答える
0

提案: 開始と終了の @@ 区切り文字を削除して、問題が解決するかどうかを確認してください。Web で見つけた例では、先頭に区切り記号しかありませんが、下にある 2 番目のものを含む例は見たことがありません。

于 2012-07-10T19:32:18.363 に答える