你能帮我解决存储过程吗?当我从phpmyadmin导出存储过程时,它以
的形式给出CREATE DEFINER=`root`@`localhost` PROCEDURE `c4mo_get_cities_prc`(IN `p_state_code` VARCHAR(3), IN `p_country_code` VARCHAR(3), IN `p_language_code` VARCHAR(3))
NO SQL
BEGIN
SELECT city_name, city_code
FROM `c4mo_cities`
WHERE enabled = 'Y'
AND language_code = p_language_code
AND state_code = p_state_code
AND country_code = p_country_code;
END
当我从phpmyadmin导入它时,它会给出错误
#1064 - 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 13
答案 0 :(得分:2)
将导出的存储过程复制到文件,例如myprocedure.sql。
现在修改.sql文件,如下所示:
1)删除DEFINER = root
@ localhost
2)在存储过程开始时添加分隔符定义。
并在结束时重置分隔符。
e.g。
`DELIMITER $$
`CREATE PROCEDURE `c4mo_get_cities_prc`(IN `p_state_code` VARCHAR(3), IN
`p_country_code` VARCHAR(3), IN `p_language_code` VARCHAR(3))
NO SQL
BEGIN
SELECT city_name, city_code
FROM `c4mo_cities`
WHERE enabled = 'Y'
AND language_code = p_language_code
AND state_code = p_state_code
AND country_code = p_country_code;
END $$
DELIMITER ;
在导入存储过程之后,就像导入的任何其他数据库一样,选择.sql文件。
谢谢
答案 1 :(得分:1)
删除DEFINER = root
@ localhost
,
它会执行。
答案 2 :(得分:1)
如果你使用phpmyadmin接口,这很简单。
出口:
您将看到一个例程选项卡,因为只有当您已经拥有至少一个存储过程时,才会显示此选项卡。
只需单击例程选项卡,您将看到您创建的存储过程(对于您已创建的数据库)。
在下面,勾选勾选复选框然后导出,您只需复制整个代码并将其保存到本地计算机上your_stored_procedure.sql
文件的任何位置。
导入:
如上所述,只需选择数据库并导入存储过程your_stored_procedure.sql
文件,因为您通常会为数据库导入.sql文件(表)。