MySQL 存储过程语法错误
MySQL Syntax Error With Stored Procedures
我一定是遗漏了一些简单的东西,因为我无法弄清楚是什么导致我的脚本失败。
下面是我写的存储过程:
CREATE PROCEDURE `Search_contacts`(IN `in_owner_id` INT,
IN `in_first_name` VARCHAR(255))
IF in_first_name IS NOT NULL THEN
SELECT * FROM `contacts`
WHERE `owner_id` = in_owner_id AND `first_name` LIKE in_first_name;
END IF;
当我尝试在我的 MySQL 服务器上执行此操作时,出现以下错误:
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 '' at line 5
我想知道是什么导致了这个错误,为什么我可以再次避免它。
感谢任何帮助!
尝试添加“BEGIN”、“END”和“DELIIMITER”,如下所示:
DELIMITER $$
CREATE PROCEDURE `Search_contacts`(IN `in_owner_id` INT,
IN `in_first_name` VARCHAR(255))
BEGIN
IF in_first_name IS NOT NULL THEN
SELECT * FROM `contacts`
WHERE `owner_id` = in_owner_id AND `first_name` LIKE in_first_name;
END IF;
END $$
DELIMITER ;
我一定是遗漏了一些简单的东西,因为我无法弄清楚是什么导致我的脚本失败。 下面是我写的存储过程:
CREATE PROCEDURE `Search_contacts`(IN `in_owner_id` INT,
IN `in_first_name` VARCHAR(255))
IF in_first_name IS NOT NULL THEN
SELECT * FROM `contacts`
WHERE `owner_id` = in_owner_id AND `first_name` LIKE in_first_name;
END IF;
当我尝试在我的 MySQL 服务器上执行此操作时,出现以下错误:
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 '' at line 5
我想知道是什么导致了这个错误,为什么我可以再次避免它。
感谢任何帮助!
尝试添加“BEGIN”、“END”和“DELIIMITER”,如下所示:
DELIMITER $$
CREATE PROCEDURE `Search_contacts`(IN `in_owner_id` INT,
IN `in_first_name` VARCHAR(255))
BEGIN
IF in_first_name IS NOT NULL THEN
SELECT * FROM `contacts`
WHERE `owner_id` = in_owner_id AND `first_name` LIKE in_first_name;
END IF;
END $$
DELIMITER ;