http://q.hatena.ne.jp/1186507665

こちらの質問と似ているのですが、同一サーバーに全く同じフィールドを持ったデータベースを追加したいのです。

が、データは新規で入れたいので、入れたいのはテーブルとフィールドだけで、データは要りません。

SQLだけで実行できますか??

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/11/12 10:35:11
  • 終了:2010/11/19 10:40:03

回答(2件)

id:asuka645 No.1

あすか回答回数856ベストアンサー獲得回数972010/11/12 11:54:43

ポイント35pt

CREATE TABLEステートメントで新しくテーブルを生成するか、CREATE DATABASEステートメントでデータベースを生成すればできます。

id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472010/11/12 14:37:15

ポイント35pt

テーブル単位であれば、「create table 作るテーブル名 like 元になるテーブル名」で出来ます。テーブルの中身は空です。例えば、original というデータベースにある test_table というテーブルと同じ構造を持ったテーブルを、今接続中のデータベースに作る場合、

create table test_table like original.test_table

となります。

ただ、データベース中の全てテーブルとなると、SQL 一発では無理だと思います。

あるデータベースをまるごとなら、mysqldump に「--no-create-db」と「--no-data」を付けてダンプファイルを取得し、ダンプファイルの中の「USE」の行を削除して、インポートするのが早いと思います。USE の行を削除するのが重要です。じゃないと、元のデータベースのテーブルが空っぽになります((元のデータベースに対してテーブルの作成・削除の権限を持っているユーザでインポートした場合))。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.12 mysqldump — データベースバックアッププログラム

# mysqldump --database original --no-create-db --no-data >dump.sql
# grep -v '^USE ' dump.sql >import.sql
# mysql dest_db <import.sql

上記の例は、コピー元のデータベース名が original、コピー先のデータベース名が dest_db で、UNIX 系 OS での場合です。mysql 上のユーザ指定や権利関係は、適宜、指定・調整して下さい。

  • id:Haga
    DBはどれを使っていますか?
    SQLServerだったら、Enterprise Managerから、
    「すべてのタスク」→「スクリプトの作成」でDDLを一括で作成して、
    それを使えば宜しいかと思われます。
  • id:JULY
    > DBはどれを使っていますか?

    質問文に書かれている http://q.hatena.ne.jp/1186507665 が MySQL に関する質問だったので、MySQL を仮定して私は回答しました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません