人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: goodbabies
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:SQL サーバー データ データベース フィールド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● あすか
●35ポイント

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


2 ● JULY
●35ポイント

テーブル単位であれば、「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 上のユーザ指定や権利関係は、適宜、指定・調整して下さい。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ