> ⑮クローンテーブル – ネットワークエンジニアチュートリアル

⑮クローンテーブル

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

クローンテーブル

テーブルの正確なコピーが必要で、CREATE TABLE …またはSELECT …コマンドが目的に合わない場合は、コピーに同じインデックス、デフォルト値などが含まれていなければならない場合があります。

MySQL RDBMSを使用している場合は、以下の手順を守ってこの状況に対処できます。

  • SHOW CREATE TABLEコマンドを使用して、ソース表の構造、索引およびすべてを指定するCREATE TABLE文を取得します。
  • ステートメントを変更して、テーブル名をクローンテーブルの名前に変更し、ステートメントを実行します。これにより、正確なクローンテーブルが作成されます。
  • 必要に応じて、テーブルの内容をコピーする必要がある場合は、INSERT INTOまたはSELECT文も発行します。



次の例を試して、練習用テーブルというクローンテーブルを作成します。その構造は次のとおりです。

ステップ1 – テーブルについて完全な構造を取得します。

SQL> SHOW CREATE TABLE 練習用テーブル \G; 
*************************** 1. row *************************** 
      Table: 練習用テーブル 
Create Table: CREATE TABLE '練習用テーブル' ( 
  'tutorial_id' int(11) NOT NULL auto_increment, 
  'tutorial_title' varchar(100) NOT NULL default '', 
  'tutorial_author' varchar(40) NOT NULL default '', 
  'submission_date' date default NULL, 
  PRIMARY KEY  ('tutorial_id'), 
  UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
) TYPE = MyISAM 
1 row in set (0.00 sec)

ステップ2 – このテーブルの名前を変更し、別のテーブルを作成します。

SQL> CREATE TABLE `CLONE_TBL` ( 
  -> 'tutorial_id' int(11) NOT NULL auto_increment, 
  -> 'tutorial_title' varchar(100) NOT NULL default '', 
  -> 'tutorial_author' varchar(40) NOT NULL default '', 
  -> 'submission_date' date default NULL, 
  -> PRIMARY KEY  (`tutorial_id'), 
  -> UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
-> ) TYPE = MyISAM; 
Query OK, 0 rows affected (1.80 sec) 

ステップ3 – ステップ2を実行した後、データベース内のテーブルをクローンします。古い表のデータをコピーする場合は、INSERT INTO … SELECTステートメントを使用してデータをコピーできます。

SQL> INSERT INTO CLONE_TBL (tutorial_id, 
   ->                        tutorial_title, 
   ->                        tutorial_author, 
   ->                        submission_date) 
   -> SELECT tutorial_id,tutorial_title, 
   ->        tutorial_author,submission_date, 
   -> FROM 練習用テーブル; 
Query OK, 3 rows affected (0.07 sec) 
Records: 3  Duplicates: 0  Warnings: 0

最後に、必要なクローンテーブルを作成します。


前のページ⑭テンポラリーテーブル

次のページ⑯サブクエリ

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:2017-09-19 更新日:

執筆者: