如何转储MySQL中的所有函数和过程(不包括表)?

luc*_*umt 5 mysql

我的数据库中有两个程序,名为test_proc1test_proc2。我想导出这两个程序的代码,但我发现导出的文件不包含任何内容,我不知道为什么。下面是我的问题的详细描述:

1.过程test_proc1的代码:

DELIMITER $$

USE `testmanagementb`$$

DROP PROCEDURE IF EXISTS `test_proc1`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc1`()
BEGIN
    SELECT * FROM system_users;
    END$$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

2.过程test_proc2的代码:

DELIMITER $$

USE `testmanagementb`$$

DROP PROCEDURE IF EXISTS `test_proc2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc2`()
BEGIN
      SELECT * FROM testcase_node;
    END$$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

3.导出程序的命令(数据库名称为testmanagementb):

mysqldump -u root -p -ntdR testmanagementb > procs.sql

4.导出结果如下:

-- MySQL dump 10.11
--
-- Host: localhost    Database: testmanagementb
-- ------------------------------------------------------
-- Server version   5.0.51b-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Dumping routines for database 'testmanagementb'
--
DELIMITER ;;
/*!50003 DROP PROCEDURE IF EXISTS `test_proc1` */;;
/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `test_proc1`()
BEGIN
    select * from system_users;
    END */;;
/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
/*!50003 DROP PROCEDURE IF EXISTS `test_proc2` */;;
/*!50003 SET SESSION SQL_MODE=""*/;;
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `test_proc2`()
BEGIN
      select * from testcase_node;
    END */;;
/*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;;
DELIMITER ;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2014-02-24  6:03:25
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么步骤4中导出的文件不包含任何内容?我的导出命令有问题吗?

Abd*_*naf 1

您可以使用不带表结构/数据和其他选项的转储mysqldump,以下是语法

mysqldump -uroot -p --routines --no-create-info --no-data --no-create-db world_copy > outputfile.sql
Run Code Online (Sandbox Code Playgroud)