繁体   English   中英

MySQL创建存储过程

[英]MySQL Create Stored Procedures

这个问题可能被标记为重复,但我真的需要帮助。

我已经对此进行了很多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服务器版本对应的手册,以便在'CREATE PROCEDURE'sp_AddCity'附近使用正确的语法(IN aCityName VARCHAR(50))BEGIN INSERT INTO City'在第2行。

知道我的语法或错误在哪里? 因为我是MySQL的新手,现在已经挣扎了一段时间。

我正在使用MySQL Server并尝试在PHPMyAdmin中使用SQL创建过程。

谢谢

从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 ,如图所示:

phpMyAdmin的分隔符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM