私はいくつかのコードに取り組んでいますが、このストアド プロシージャの問題に行き詰まりました...それを見るのに時間がかかりすぎたので、誰かが私がどこに初心者であるかを教えてください。
次のエラーが表示されます。
エラー コード: 1064 SQL 構文にエラーがあります。'@ownerid varchar(50); の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。@active tinyint を宣言します。@subuser tinyint を宣言します。4 行目で ' を設定
このコードで:
DELIMITER //
USE `test`//
DROP PROCEDURE IF EXISTS `getAccount`//
CREATE DEFINER=`peter`@`%` PROCEDURE `getAccount`( IN cid VARCHAR(20))
BEGIN
DECLARE cardid VARCHAR(50);
DECLARE @ownerid VARCHAR(50);
DECLARE @active TINYINT;
DECLARE @subuser TINYINT;
SET cardid = MD5( cid + SHA1(cid + 'a salt value'));
SELECT @active = active, @ownerid = ownerid, @subuser = subuser FROM cards_tbl WHERE cardhash = cardid;
IF @active = 1 THEN
IF @subuser = 1 THEN
SELECT subuser_m2s_tbl.name,subuser_m2s_tbl.image, user_saldo.saldo AS credits FROM subuser_m2s_tbl
JOIN user_saldo ON subuser_m2s_tbl.subhash = user_saldo.userhash
WHERE subuser_m2s_tbl.subhash = @ownerid;
ELSE
SELECT user_m2s_tbl.name,user_m2s_tbl.image, user_saldo.saldo AS credits FROM user_m2s_tbl
JOIN user_saldo ON user_m2s_tbl.userhash = user_saldo.userhash
WHERE user_m2s_tbl.userhash = @ownerid;
END IF;
END IF;
END$$
DELIMITER ;
ストアドプロシージャは初めてなので、非常に単純なものです.....よろしくお願いします