所以我需要创建一个名为AddComment的存储过程,它将向我的Comments表添加一条评论,然后在评论者名称不存在的情况下向Comments表添加一条条目。
DELIMITER //
CREATE PROCEDURE AddComment(Name VARCHAR(60), Title VARCHAR(60), Comments VARCHAR(60))
BEGIN
INSERT INTO Comments(Name, Title, Comments)
VALUES (Name, Title, Comments);
DECLARE name_count INT;
SELECT COUNT(Name) INTO name_count
FROM Commenters
WHERE Name = Name;
IF name_count = 0
THEN INSERT INTO Commenters(Name)
VAlUES(Name);
ELSEIF name_count = 1
THEN INSERT IGNORE Commenters(Name)
VALUES(Name);
END IF;
END;
//
ERROR 1064(42000):你的SQL语法有错误;请查看MySQL服务器版本对应的手册'DECLARE name_count INT;
SELECT COUNT(Name) INTO name_count
从评论
^是我得到的错误。我一直在调整我的代码,试图找出它,但没有工作。
您需要一个游标来使用这样的语法,但是您可以使用SET:
SET name_count = (SELECT COUNT(*) ...);
或者更好的是,因为您实际上并不使用该值,所以完全消除该变量:
IF NOT EXISTS (SELECT * FROM ...) THEN