我在设置此功能时遇到问题,以检查是否存在外键记录。
CREATE FUNCTION find_city(NAME VARCHAR) RETURNS INT
BEGIN
# initilize variables
DECLARE ID_FOUND INT DEFAULT 0;
-- Declare variable to hold results
ID_FOUND = SELECT city_id FROM city WHERE city_name = NAME;
-- If records are returned?
CASE
-- Return the foreign key ID found
WHEN ID_FOUND >= 1 THEN RETURN ID_FOUND
-- Insert new record into table
ELSE INSERT INTO `donorsearch`.`city` (`city_name`) VALUES (NAME);
END
END//
我已尝试通过PHPMyAdmin进行调试,但不确定问题是什么。
错误消息:#1064 - 您的SQL语法出错;检查与MariaDB服务器版本对应的手册,以便在')RETURNS INT
附近使用正确的语法答案 0 :(得分:0)
你的功能有很多错误。
delimiter //
CREATE FUNCTION find_city(NAME VARCHAR(100)) RETURNS INT
BEGIN
DECLARE ID_FOUND INT DEFAULT 0;
SET ID_FOUND = (SELECT city_id FROM city WHERE city_name = NAME);
IF ID_FOUND > 0 THEN
RETURN ID_FOUND;
ELSE
INSERT INTO `donorsearch`.`city` (`city_name`) VALUES (NAME);
END IF;
END
//
使用像 MySQL Workbench 这样的工具来突出显示错误并一次修复一个错误。