mysql存储过变量的声明_MYSQL存储过程:变量声明和条件语句

我看过许多教程,手册和文档,但我仍然无法让它工作.

我正在尝试使用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.什么是正确的语法?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值