我有一个MySQL数据库,我试图找到一种仅导出其结构而没有自动递增值的方法。mysqldump --no- data几乎可以完成这项工作,但是会保留auto_increment值。有没有不用PHPMyAdmin就能做到的方法(我知道它可以做到)?
mysqldump --no- data
你可以这样做 :
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql
正如其他人所提到的,如果你想sed以正常工作,添加g(用于 摹 这样叶形更换)参数:
sed
g
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//g' > <filename>.sql
(如果您已经安装了GUI工具这仅适用:mysqldump --skip-auto-increment)
mysqldump --skip-auto-increment
将\b是无用的,有时候会打破命令。请参阅此SO主题以获取解释。因此,最佳答案是:
\b
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*//g' > <filename>.sql