私はMySQLデータベースを持っていますが、自動インクリメント値なしで構造体をエクスポートする方法を探しています。 mysqldump --no-data
はほとんど仕事をしますが、auto_increment値を保持します。 PHPMyAdminを使用せずにそれを行う方法はありますか?mysqldump - 自動インクリメントのない構造体をエクスポートする
答えて
あなたはこれを行うことができます。
mysqldump -u root -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql
はあなたが適切作品に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
)
最後の1つは素晴らしい仕事。ありがとう。 – Paris
'--skip-auto-increment'は本当の選択肢ではないと思います。私は[documentation](http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html)で見つけることができません。この問題に関する2つのMySQLバグのいずれにも言及していません:[20786](http://bugs.mysql.com/bug.php?id=20786)、[30957](http://bugs.mysql.com/bug .php?id = 30957)。どのバージョンのmysqldumpがこのオプションを持っていますか? – Rich
'--skip-auto-increment'は、正しく覚えていれば、MySQL GUIツールに追加されたオプションです。 (わからない^^)実際にはそれは本当に解決策ではありません! しかし、2番目のinlineコマンドは正しいです、私は[ここ](http://bugs.mysql。com/bug.php?id = 20786)ここでは、** autoincrement **の問題について話し、 'sed'フィルタリングのアイデアを提供しています! – JoDev
mysq ldump -u [USER] -p [パスワード] -d --skip-opt - 単独トランザクション[DB_SCHEMA]> [FILE.ESTENSIONE]
これは--create-optionsであり、デフォルトでは、AUTO_INCREMENTテーブル定義を生成します。
あなただけのベーステーブルをしたい場合は、
mysql -hlocalhost -uuser -ppass --skip-column-names --batch \
-e "select table_name from tables where table_type = 'BASE TABLE' and table_schema = 'schemaname'" INFORMATION_SCHEMA \
| xargs mysqldump -hlocalhost -uuser -ppass \
--no-data --skip-triggers --skip-opt --no-create-db \
schemaname
あなたが意見をしたい場合は、あまりにもトリガーやルーチン、
mysqldump -hlocalhost -uuser -ppass \
--skip-opt --events --routines --no-data \
schemaname
これはまた、自動増分フィールド、 'ドロップテーブル'、文字セットなどを削除することに注意してください。 – Deanna
JoDevの答えは、SEDの正規の小さな調整で私のために完璧に働きました式:
mysqldump -d -h localhost -u<user> -p<password> <databaseName> | sed 's/ AUTO_INCREMENT=[0-9]*//g' > databaseStructure.sql
この投稿のおかげで、私は質問に答えることができました:
データベースのバージョン管理はどうすればできますか?
その後、私はちょうどこのスクリプトを作成しました:db_bkp.sh
#!/bin/sh
filename="db_structure.sql"
backupfolder="/var/www/"
fpath="$backupfolder/$filename"
usr="DBUSER"
pass="DBPASS"
db="DBNAME"
mysqldump --user=$usr --password=$pass --no-data $db | sed 's/ AUTO_INCREMENT=[0-9]*//g' > "$fpath"
それから私は、crontabファイルにこれを追加しました:
30 5 * * * sh /home/scripts/db_bkp.sh
その後、私のレポで、私はgitのためにdb_structure.sql
、結果を追加し、プッシュする前にprodに変更私はすべてのdbsで何かするのを忘れた構造上の変更があるかどうかを常にチェックします。
- 1. インクリメント構造体のメンバ
- 2. 構造体の自由な機能
- 3. 自動インクリメント構文エラー
- 4. mysql自動インクリメントなしインクリメント
- 5. C構造体内の構造体内部の構造体
- 6. 異なる構造体内の構造体へのポインタ。 C
- 7. プライベート構造体のベクトルを含むクラスをエクスポートする方法
- 8. 構造体内の構造体
- 9. 構造体の配列 - 構造体?
- 10. ある構造体を別の構造体にコピーする
- 11. 構造体/クラスのストリーム演算子を自動生成
- 12. インテル®C++コンパイラー自体の汎用構造
- 13. Pythonの構造体内にmatlab構造体をインポートする
- 14. Javaの構造体のような構造体を作成する
- 15. C構造体、構造体へのポインタ、適切な初期化
- 16. は動的に私が動的にメンバーとして別の構造体を持つ構造体を割り当てています構造体
- 17. グローバル構造体を定義するグローバル構造体
- 18. 構造体を別の構造体に渡す方法
- 19. TFS2010自動フォルダ構造
- 20. 自動化フォルダ構造を動的
- 21. C#で自分のLINQ構造体を定義するには?
- 22. 標準MLエクスポート演算子を構造体から中置
- 23. 構造をダンプする前にmysqldumpが停止する
- 24. 自動インクリメントC#
- 25. 自動インクリメント
- 26. モンゴース自動インクリメント
- 27. 自動インクリメント
- 28. golang構造体
- 29. 構造体に
- 30. は、構造体
MySQL 5.5(サーバ)のように、 '--no-data'はデフォルトでauto_incrementの値を省略します。 –
@JoeyAdamsあなたは確かですか?これは私が経験する動作ではありません – aland
@JoeyAdams MySQL 5.7。* --no-dataを使用すると、mysqldumpはauto_incrementを無視しません。 –