1. ホーム
  2. mysql

[解決済み] mysqldump - オートインクリメントを使用せずに構造体のみをエクスポートする

2023-03-21 16:22:09

質問

MySQL データベースを持っていますが、自動インクリメントの値なしで、その構造だけをエクスポートする方法を探しています。 mysqldump --no-data でほぼ事足りますが、auto_increment 値を保持してしまいます。PHPMyAdmin を使用せずにそれを行う方法はありますか?

どのように解決するのですか?

あなたはこれを行うことができます。

mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql

他の方もおっしゃっていますが、もし sed を正しく動作させるには g (を追加してください。 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 Toolsがインストールされている場合のみ動作します。 mysqldump --skip-auto-increment )

コメントにより新規UPDATE。

には \b は無意味であり、時にはコマンドを壊してしまいます。これを見てください SOトピック を参照してください。 つまり、最適化された回答は:

mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*//g' > <filename>.sql