我查看了许多教程、手册和文档,但仍然无法使其工作。
我正在尝试使用phpMyAdmin创建存储过程。
我似乎找不到错误,SQL错误信息太模糊了...
CREATE PROCEDURE insertToonOneShot(IN locale CHAR(2), IN name VARCHAR(16), IN realm VARCHAR(24), IN faction CHAR(1), IN toon_level INT, IN class_name INT)
BEGIN
DECLARE @realmID INT;
DECLARE @classID INT;
DECLARE @toonID INT;
SET @realmID = SELECT id FROM realms WHERE realms.name = realm;
SET @classID = SELECT id FROM classes WHERE classes.name = class_name;
IF NOT @realmID IS NULL AND NOT @classID IS NULL AND @toonID IS NULL THEN
INSERT INTO
toon (`locale`, `name`, `realm_id`, `faction`, `level`, `class_id`)
VALUES
(locale, name, @realmID, faction, toon_level, @classID);
END IF;
END;
我现在遇到的错误是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near @realmID INT; DECLARE @classID INT; DECLARE @toonID INT; SET @rea at line 3
这可能是我所做过的最令人沮丧的事情之一...
我看过许多在线教程,其中一些显示在变量声明中使用@符号,其他人则不使用,甚至有些使用VAR而不是DECLARE。什么是正确的语法?...
@realmID := id...
方法。但是在第三行仍然收到相同的错误。它似乎不喜欢 DECLARE 语句。 - Vigs@
符号吗?在我的存储过程中,声明时没有@
。 - Avinash Raj