「mysqldump --all-databases」内容をデータベースへインポートしたいのですが、


 **前提**  
・色々試行錯誤しているので、何回かやり直している状態です

* * *

**Q1.「mysqldump --all-
databases」で取得したDUMPデータをインポートする際、既存同名があった場合、上書きされるでしょうか？**  
・データベースは「IF NOT EXISTS」がコメントアウトされている(?)から、上書きされる？

[code]

    CREATE DATABASE /*!32312 IF NOT EXISTS*/
    
[/code]

・テーブルは削除後、作成される？

[code]

      DROP TABLE IF EXISTS `テーブル名`;
    
[/code]

* * *

**Q2.データベース構成をインストール直後の構成に戻すことは可能でしょうか？**  
・何回かdumpデータをインストールしたのですが、可能ならその前の状態へ戻したい

* * *

**環境**  
・MySQL5.7




はじめに、  
"IF EXISTS"は存在した場合  
"IF NOT EXISTS"は存在しない場合に実行されます。

> Q1.「mysqldump --all-databases」で取得したDUMPデータをインポートする際、既存同名があった場合、上書きされるでしょうか？

いえ、存在した場合DROPされ、そのあとに再作成されるはずです。  
DUMPデータを見ると、DROP TABLE文のあとにCREATE TABLE文が書かれていると思います。  
また、存在しているが "IF NOT EXISTS" を入れずにCREATE TABLEを発行した場合、エラーが発生するはずです。

[code]

    ERROR 1007 (HY000): Can't create database 'NewYork'; database exists
    
[/code]

> データベース構成をインストール直後の構成に戻すことは可能でしょうか？

DBを一旦削除し、再度インストールするのがいいかもしれません。

また、何度も試すような可能性があるなら、Dockerでmysqlサーバを用意してそれにdumpを適用する方法を取ると良いかもしれません。使い捨てがかなり楽になるとおもいます。(かならずしもDockerである必要はありません。)




はじめに、  
"IF EXISTS"は存在した場合  
"IF NOT EXISTS"は存在しない場合に実行されます。

> Q1.「mysqldump --all-databases」で取得したDUMPデータをインポートする際、既存同名があった場合、上書きされるでしょうか？

いえ、存在した場合DROPされ、そのあとに再作成されるはずです。  
DUMPデータを見ると、DROP TABLE文のあとにCREATE TABLE文が書かれていると思います。  
また、存在しているが "IF NOT EXISTS" を入れずにCREATE TABLEを発行した場合、エラーが発生するはずです。

[code]

    ERROR 1007 (HY000): Can't create database 'NewYork'; database exists
    
[/code]

> データベース構成をインストール直後の構成に戻すことは可能でしょうか？

DBを一旦削除し、再度インストールするのがいいかもしれません。

また、何度も試すような可能性があるなら、Dockerでmysqlサーバを用意してそれにdumpを適用する方法を取ると良いかもしれません。使い捨てがかなり楽になるとおもいます。(かならずしもDockerである必要はありません。)

