我在语法和逻辑上都对存储过程有疑问。在sqlfiddle.com上尝试时出现以下错误。
我也不确定逻辑是否正确。无论如何,我可以通过输入ID进行检查,查询将返回一个表,其中包含ID的行已被删除?
创建一个名为delete_id的过程,该过程将删除ID所在的行
CREATE PROCEDURE DELETE_ID (ID_INPUT IN INT)
AS
BEGIN
DELETE FROM TABLE ALBUM WHERE ID=ID_INPUT;
END;
预期结果:输入ID,SQL会删除包含ID的行
实际结果:
您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第3行的“ TABLE ALBUM WHERE ID = ID_INPUT”附近使用
答案 0 :(得分:0)
您需要在代码的开头添加“ DELIMITER //”,并在结尾添加“ //”。所以您的代码应该像
DELIMITER //
CREATE PROCEDURE `DELETE_ID`(IN `ID_INPUT` INT)
BEGIN
DELETE FROM `ALBUM` WHERE `ID` = ID_INPUT;
END //