所以我需要创建一个名为AddComment的存储过程,它会在我的Comments表中添加注释,然后在Commenters表中添加一个条目,如果该评论者名称不存在的话。
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;
//
错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册
r在'DECLARE name_count INT附近使用正确的语法;
SELECT COUNT(名称)INTO name_count
来自评论者
^我得到的错误。我不断调整我的代码试图找出它,但没有任何工作。
答案 0 :(得分:0)
您需要使用游标来使用这样的语法,但您可以使用SET:
SET name_count = (SELECT COUNT(*) ...);
或者更好的是,由于您实际上并未使用该值,因此完全消除该变量:
IF NOT EXISTS (SELECT * FROM ...) THEN