gpt4 book ai didi

mysqldump --add-drop-procedure 或 DROP PROCEDURE IF EXISTS

转载 作者:行者123 更新时间:2023-11-29 06:54:08 26 4
gpt4 key购买 nike

我需要使用 mysqldump 和 replace 而不是 insert 并且在恢复时不删除数据库和表。但我需要删除并重新创建触发器和存储过程

为此,我将 mysqldump 与 --replace--skip-add-drop-table 参数一起使用,并替换了 CREATE TABLE > 使用 CREATE TABLE IF NOT EXIST (在 php 中使用 str_replace())

当我尝试恢复时,出现错误触发器已存在

我已经通过添加 --add-drop-trigger 参数解决了这个问题

但现在我有另一个错误:PROCEDURE已经存在

我搜索了一些类似 --add-drop-procedure 但它似乎不存在

我在导出的.sql 文件中看到了这样的内容

/*!50003 DROP PROCEDURE IF EXISTS `my_test_procedure` */;

但似乎被评论了所以不起作用

完整代码如下:

mysqldump --replace --skip-add-drop-table --skip-comments --add-drop-trigger --hex-blob --routines  -u$user -p$pass -h localhost -P 3307 bd_name tbl_name > path_to_export/exported.sql

知道如何解决这个问题吗?

最佳答案

But seem to be commented so not work

不是评论。它看起来只是一个。

/*!50003 DROP PROCEDURE IF EXISTS `my_test_procedure` */;

这种格式的意思是“只有当您是MySQL服务器,并且您的版本是5.00.03或更高版本时才执行此语句。”

https://dev.mysql.com/doc/refman/5.7/en/comments.html

您会注意到 mysqldump 文件中包含了类似的语句,所有这些语句都正常执行。

关于mysqldump --add-drop-procedure 或 DROP PROCEDURE IF EXISTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46355598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com