Tôi đã bỏ các thủ tục lưu trữ của tôi với những điều sau đây
C:\>mysqldump -u... -p... -n -d --routines --triggers --all-databases > Z:\stuff.sql
Đây là một trong những quy trình với THỦ TỤC DROP bao gồm:
--
-- Dumping routines for database 'lovesh'
--
/*!50003 DROP PROCEDURE IF EXISTS `LoadMyData` */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = cp850 */ ;
/*!50003 SET character_set_results = cp850 */ ;
/*!50003 SET collation_connection = cp850_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = '' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50020 DEFINER=`lwdba`@`127.0.0.1`*/ /*!50003 PROCEDURE `LoadMyData`()
DETERMINISTIC
BEGIN
DECLARE NDX INT;
SET NDX = 0;
WHILE NDX < 100 DO
INSERT INTO mydata (ti_time) VALUES (NOW() - INTERVAL CEILING(14400*RAND()) SECOND);
SET NDX = NDX + 1;
END WHILE;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
Khi bạn đã sử dụng --skip-opt, đó là nguyên nhân gây ra bởi vì --opt bao gồm - tùy chọn điều trị và THỦ TỤC DROP được coi là dành riêng cho MySQL.
-a, --create-options
Include all MySQL specific create options.
(Defaults to on; use --skip-create-options to disable.)
--skip-opt Disable --opt. Disables --add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, and --disable-keys.
--skip-opt sẽ hoàn tác - tạo các tùy chọn và do đó loại bỏ THỦ TỤC DROP.
Giải đáp bí ẩn !!!
Trả lời câu hỏi tiền thưởng
Đó không phải là ý kiến; Đó là những chỉ thị của MySQL. Bất cứ khi nào MySQL chạy một Lệnh, nó sẽ tìm các lệnh này được đặt trong Nhận xét
Số 50003 chỉ ra rằng lệnh này sẽ thực thi khi và chỉ khi phiên bản của MySQL là 5.0.3 trở lên.
Đây là một ví dụ khác từ một mysqldump:
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `datas` (
`ID` int(2) DEFAULT NULL,
`CATEGORY` int(2) DEFAULT NULL,
`ORD` int(1) DEFAULT NULL
);
/*!40101 SET character_set_client = @saved_cs_client */;
Số 40101 chỉ ra rằng lệnh này sẽ thực thi khi và chỉ khi phiên bản của MySQL là 4.1.1 trở lên.
Các chỉ thị SQL này có sẵn để bảo vệ bạn nếu bạn tải các mysqldumps này vào các phiên bản trước. Những chỉ thị này cho phép chấp nhận hoàn toàn các lệnh nhất định. Xin đừng loại bỏ chúng.
Tuy nhiên, nếu bạn chỉ làm việc với MySQL 5.0+ và có kế hoạch loại bỏ các thủ tục được lưu trữ riêng biệt, bạn có thể loại bỏ chúng bằng cách sử dụng Perl hoặc awk. Cá nhân tôi sẽ để họ được.