Mysql表


user_の作成1、user_2テーブル、集計テーブルuser_を作成するmerge、注意:いくつかのテーブルの構造は完全に同じで、mergeテーブルはmergeエンジンを使用する必要があります.
CREATE TABLE `user_1` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `user_2` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
create table `user_merge`(
  id int(11) not null,
  name varchar(50) not null,
  primary key(`id`)
) engine=merge union=(user_1,user_2) insert_method=first;

mergeテーブルのinsert_methodには2つの値、firstとlastがあり、mergeテーブルにデータを挿入するときに最初のテーブルに挿入するか、最後のテーブルに挿入するかを示します.
mergeテーブルにデータを挿入します.
mysql> insert into user_merge(id,name) values(1,'fx1');Query OK, 1 row affected (0.01 sec)mysql> select * from user_merge;+----+------+| id | name |+----+------+|  1 | fx1  |+----+------+1 row in set (0.00 sec)
userを検索してくださいid、データがuserに挿入されたかどうかを見てみましょう.1:
mysql> select * from user_1;+----+------+| id|name|+----+----+|1|fx 1|+----+-----+1 row in set(0.00 sec)データの場合user_に挿入1になりました.
user_へ2データを挿入し、mergeテーブルをクエリーします.
mysql> insert into user_2(id,name) values(2,'fx2');Query OK, 1 row affected (0.00 sec)
mysql> select * from user_2;+----+------+| id | name |+----+------+|  2 | fx2  |+----+------+1 row in set (0.02 sec)
mysql> select * from user_1;+----+------+| id | name |+----+------+|  1 | fx1  |+----+------+1 row in set (0.00 sec)mysql> select * from user_merge;+----+------+| id | name |+----+------+|  1 | fx1  ||  2 | fx2  |+----+------+2 rows in set (0.00 sec)
クエリmergeテーブルはuser_をマージできることを発見しました1とuser_2のデータです.
ユーザーの更新2表のデータを調べてみます.
mysql> update user_merge set name='fx22' where id=2;Query OK, 1 row affected (0.17 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from user_2;+----+------+| id | name |+----+------+|  2 | fx22 |+----+------+1 row in set (0.00 sec)mysql> select * from user_merge;+----+------+| id | name |+----+------+|  1 | fx1  ||  2 | fx22 |+----+------+2 rows in set (0.01 sec)user_2のデータは変更され、クエリーmergeテーブルも正常です.
データを削除し、クエリーしてみます:mysql>delete from user_merge where id=2;Query OK, 1 row affected (0.02 sec)mysql> select * from user_2;Empty set (0.01 sec)mysql> select * from user_merge;+----+------+| id | name |+----+------+|  1 | fx1  |+----+------+1 row in set (0.00 sec)
発見user_2のデータは削除され、mergeテーブルをクエリーするときも削除されました.