我不明白为什么以下SQL过程将不会存储在我的数据库中并报告错误,我已经使用了很久了,完全感到困惑。

DELIMITER $$
CREATE PROCEDURE add_brand(IN inBrandName TEXT)
BEGIN

DECLARE brandexists INT DEFAULT 0;

SELECT count(*) WHERE BrandName = inBrandName INTO brandexists;

IF brandexists = 1 THEN
select "exists";
ELSE
INSERT INTO tblBrand (BrandName) VALUES (inBrandName);
SELECT LAST_INSERT_ID();
END IF;

END


我得到的错误是这样的:


  #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以获取在'WHERE BrandName = inBrandName INTO brandexists附近使用的正确语法;如果品牌在第6行存在= 1 THEN sele'


有任何想法吗?

最佳答案

您缺少从中选择的表:

SELECT count(*)   WHERE BrandName = inBrandName INTO brandexists;
                ^---here (from some_table)

10-07 12:36