Mysql表
user_の作成1、user_2テーブル、集計テーブルuser_を作成するmerge、注意:いくつかのテーブルの構造は完全に同じで、mergeテーブルはmergeエンジンを使用する必要があります.
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テーブルをクエリーするときも削除されました.
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テーブルをクエリーするときも削除されました.