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 ;