这个问题可能被标记为重复,但我确实需要帮助。
我已经就此做了很多关于SO的答案,并实施了解决方案,但似乎没有任何效果。
创建存储过程时:
DELIMITER ##
DROP PROCEDURE IF EXISTS sp_AddCity##
CREATE PROCEDURE 'sp_AddCity'(IN aCityName VARCHAR(50))
BEGIN
INSERT INTO City(CityName)
VALUES (aCityName);
END##
DELIMITER ;
我总是收到错误#1064 - 您的SQL语法出错了;检查与您的MySQL服务器版本相对应的手册,以便在“创建程序' sp_AddCity'(IN aCityName VARCHAR(50))”中使用正确的语法。开始插入城市'在第2行。
知道我的语法或错误在哪里?因为我是MySQL的新手,现在已经挣扎了一段时间。
我正在使用MySQL Server并尝试在PHPMyAdmin中使用SQL创建过程。
谢谢
答案 0 :(得分:0)
从MySQL-CLI开始,按预期创建存储过程:
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.18 |
+-----------+
1 row in set (0.00 sec)
mysql> DELIMITER ##
mysql> DROP PROCEDURE IF EXISTS `sp_AddCity`##
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE PROCEDURE `sp_AddCity`(IN `aCityName` VARCHAR(50))
-> BEGIN
-> INSERT INTO `City`(`CityName`)
-> VALUES (`aCityName`);
-> END##
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql> CALL `sp_AddCity`('CityName');
ERROR 1146 (42S02): Table '_.City' doesn't exist
在phpMyAdmin中,您必须设置DELIMITER
,如图所示: