如何从phpmyadmin导出和导入存储过程

时间:2015-04-02 14:21:45

标签: php stored-procedures import phpmyadmin export

你能帮我解决存储过程吗?当我从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 

3 个答案:

答案 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文件(表)。