在mysqldump中跳过版本检查注释

时间:2013-04-01 23:03:59

标签: mysql mysqldump

如何跳过MySQL转储中的版本检查注释。

/*!50003 ... */ ;

我基本上希望mysqldump假设版本相同,因此兼容。

我想要这个的原因是我可以转储我的数据库的结构,并提交,并将其与其他时间点和其他环境进行比较。

目前,它还在条件版本检查注释中包装存储过程,触发器和函数。我希望它只是输出它们作为普通的SQL(没有注释)。并完全删除条件SET语句。

我在这里看到了类似的问题,但它没有回答我的问题:How can I get rid of these comments in a MySQL dump?

我不打算执行SQL。

在其上执行grep / sed也会删除触发器等。

1 个答案:

答案 0 :(得分:0)

要仅删除SET命令,请使用:

perl -pi.bak -e 's|^/\*!\d{5} SET .*;\s*$||g;' filename.sql

要仅删除评论,请使用:

perl -pi.bak -e '
    s|/\*!\d{5} ([^\*]+)\*/|\1|g;
    s|\*/$||g;
    s|\*/\s*(;?;?)$|\1|g;
    s|/\*!\d{5} ||g;' filename.sql

要删除两者,请使用:

perl -pi.bak -e '
    s|^/\*!\d{5} SET .*;\s*$||g;
    s|/\*!\d{5} ([^\*]+)\*/|\1|g;
    s|\*/$||g;
    s|\*/\s*(;?;?)$|\1|g;
    s|/\*!\d{5} ||g;' filename.sql