web-dev-qa-db-ja.com

データをコピーせずにテーブルをコピーする

CREATE TABLE foo SELECT * FROM bar

テーブルfooをコピーし、barという新しいテーブルとして複製します。

fooのスキーマをbarと呼ばれる新しいテーブルにコピーするにはどうすればいいですか?withoutデータもコピーしますか?

122
Matthew

試してください:

CREATE TABLE foo SELECT * FROM bar LIMIT 0

または:

CREATE TABLE foo SELECT * FROM bar WHERE 1=0
115
Andomar

試して

CREATE TABLE foo LIKE bar;

そのため、キーとインデックスもコピーされます。

ドキュメント

362
RCNeil
SHOW CREATE TABLE bar;

そのテーブルのcreateステートメントを取得し、テーブル名などを編集してから実行します。

これにより、インデックスをコピーしたり、テーブルの作成を手動で調整したりできます。

プログラム内でクエリを実行することもできます。

22
Timo Huovinen

テーブルの構造のみを複製したい:

CREATE TABLE foo SELECT * FROM bar WHERE 1 = 2;

また、データをコピーしたい:

CREATE TABLE foo as SELECT * FROM bar;
1
Ali Azaz Alam