MySQLテンポラリ・テーブルとレプリケーション・テーブル

8809 ワード

MySQLテンポラリ・テーブルは、テンポラリ・データを保存する必要がある場合に便利です.テンポラリ・テーブルは現在の接続でのみ表示され、接続を閉じるとMysqlはテーブルを自動的に削除し、すべてのスペースを解放します.
テンポラリ・テーブルはMySQL 3.23バージョンに追加され、あなたのMySQLバージョンが3.23バージョン未満ではMySQLのテンポラリ・テーブルは使用できません.しかし、今ではこのような低バージョンのMySQLデータベースサービスを使用することはめったにありません.
MySQLテンポラリ・テーブルは現在の接続でのみ表示されます.PHPスクリプトを使用してMySQLテンポラリ・テーブルを作成すると、PHPスクリプトの実行が完了するたびに自動的に破棄されます.
他のMySQLクライアント・プログラムを使用してMySQLデータベース・サーバに接続してテンポラリ・テーブルを作成する場合は、クライアント・プログラムを閉じるときにのみテンポラリ・テーブルを破棄します.もちろん、手動で破棄することもできます.
 CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);

MySQLテンポラリ・テーブルの削除
デフォルトでは、データベースとの接続を解除すると、テンポラリ・テーブルは自動的に破棄されます.もちろん、現在のMySQLセッションでDROP TABLEコマンドを使用して、テンポラリ・テーブルを手動で削除することもできます.
 
MySQLレプリケーションテーブル
MySQLのデータテーブルを完全にコピーする必要がある場合は、テーブルの構造、インデックス、デフォルト値などが含まれます.CREATE TABLEだけを使うと...SELECT命令は、実現できません.
MySQLデータテーブルを完全にコピーするには、次の手順に従います.
  • SHOW CREATE TABLEコマンドを使用して、元のデータテーブルの構造、インデックスなどを含むデータテーブル作成文を取得します.
  • 次のコマンドで表示されるSQL文をコピーし、データテーブル名を変更し、SQL文を実行します.以上のコマンドでデータテーブル構造を完全にコピーします.
  • 表の内容をコピーしたい場合はINSERT INTOを使用できます...SELECT文で実現します.

  • ≪インスタンス|Instance|emdw≫
    テーブルrunoob_をコピーするインスタンスtbl .
    ステップ1:
    データテーブルの完全な構造を取得します.
    mysql> SHOW CREATE TABLE runoob_tbl \G;
    *************************** 1. row ***************************
           Table: runoob_tbl
    Create Table: CREATE TABLE `runoob_tbl` (
      `runoob_id` int(11) NOT NULL auto_increment,
      `runoob_title` varchar(100) NOT NULL default '',
      `runoob_author` varchar(40) NOT NULL default '',
      `submission_date` date default NULL,
      PRIMARY KEY  (`runoob_id`),
      UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`)
    ) ENGINE=InnoDB 
    1 row in set (0.00 sec)
    
    ERROR:
    No query specified

    ステップ2:
    SQL文のデータテーブル名を変更し、SQL文を実行します.
    mysql> CREATE TABLE `clone_tbl` (
      -> `runoob_id` int(11) NOT NULL auto_increment,
      -> `runoob_title` varchar(100) NOT NULL default '',
      -> `runoob_author` varchar(40) NOT NULL default '',
      -> `submission_date` date default NULL,
      -> PRIMARY KEY  (`runoob_id`),
      -> UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`)
    -> ) ENGINE=InnoDB;
    Query OK, 0 rows affected (1.80 sec)

    手順3:
    第2の手順を実行すると、データベースに新しいクローンテーブルclone_を作成します.tbl. データテーブルのデータをコピーしたい場合はINSERT INTOを使用して...SELECT文で実現します.
    mysql> INSERT INTO clone_tbl (runoob_id,
        ->                        runoob_title,
        ->                        runoob_author,
        ->                        submission_date)
        -> SELECT runoob_id,runoob_title,
        ->        runoob_author,submission_date
        -> FROM runoob_tbl;
    Query OK, 3 rows affected (0.07 sec)
    Records: 3  Duplicates: 0  Warnings: 0

    以上の手順を実行すると、テーブル構造およびテーブルデータを含むテーブルが完全にコピーされます.
    転載先:https://www.cnblogs.com/loaderman/p/10167523.html