如何跳过MySQL转储中的版本检查注释。
/*!50003 ... */ ;
我基本上希望mysqldump假设版本相同,因此兼容。
我想要这个的原因是我可以转储我的数据库的结构,并提交,并将其与其他时间点和其他环境进行比较。
目前,它还在条件版本检查注释中包装存储过程,触发器和函数。我希望它只是输出它们作为普通的SQL(没有注释)。并完全删除条件SET
语句。
我在这里看到了类似的问题,但它没有回答我的问题:How can I get rid of these comments in a MySQL dump?
我不打算执行SQL。
在其上执行grep
/ sed
也会删除触发器等。
答案 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