zoukankan      html  css  js  c++  java
  • mysql-merge合并表

    merge表


    注意:
    1  每个子表的结构必须一致,主表和子表的结构需要一致,
    
    2  每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索。
    
    3  子表需要是MyISAM引擎
    4  AUTO_INCREMENT 不会按照你所期望的方式工作。
    
    建表语句
    
    create table tablename(正常的字段)engine=merge insert_method=last
    
    insert_method:
    
    有两个值如下:
    LAST  如果你执行insert 指令来操作merge表时,插入操作会把数据添加到最后一个子表中。
    
    FIRST  同理,执行插入数据时会把数据添加到第一个子表中。
    
    例子:
    
    create table user1(
    id int(10) not null auto_increment,
    
    name varchar(50),
    sex int(1),
    
    primary key(id)
    )engine=myisam charset=utf8;
    
    create table user2(
    
    id int(10) not null auto_increment,
    
    name varchar(50),
    sex int(10)
    
    ,primary key(id)
    )engine=myisam charset=utf8;
    
    insert into user1 (name,sex) values('张三',0);
    
    insert into user2 (name,sex) values('lisi',1);
    
    mysql> select * from user1;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | 张三 |    0 |
    +----+------+------+
    
    mysql> select * from user2;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | lisi |    1 |
    +----+------+------+
    
    create table alluser(
    
    id int(10) not null auto_increment,
    name varchar(50),
    
    sex int(10),
    index(id)
    
    )type=merge union=(user1,user2) insert_method=last;
    
    mysql> select * from alluser;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | 张三 |    0 |
    |  1 | lisi |    1 |
    +----+------+------+
    
    mysql> insert into alluser(name,sex) values('嘿嘿',0);
    
    mysql> select * from user1;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | 张三 |    0 |
    +----+------+------+
    1 row in set (0.00 sec)
    
    mysql> select * from user2;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | lisi |    1 |
    |  2 | 嘿嘿 |    0 |
    +----+------+------+
    
    2 rows in set (0.00 sec)
    //他把这条数据存入了user2表里是因为我们的insert_method的参数填写的是last
    
    mysql> update alluser set sex=replace(sex,0,1) where id=2;
    +----+------+------+
    | id | name | sex  |
    +----+------+------+
    |  1 | 张三 |    0 |
    |  1 | lisi |    1 |
    |  2 | 嘿嘿 |    1 |
    +----+------+------+
    


  • 相关阅读:
    【AppScan心得】IBM Rational AppScan 无法记录登录序列
    tomcat记录XForwardedFor字段中的远程IP
    【AppScan深入浅出】修复漏洞:会话标识未更新(中危)
    用java在Windows控制台输出utf8字符
    【图解漏洞】图解跨站脚本攻击(XSS)原理
    【图解漏洞】图解跨站请求伪造(CSRF)原理(之二)
    雅克比矩阵(Jacobian Matrix)在正运动学中的应用
    游戏物理引擎之静态碰撞
    万向节死锁(Gimbal Lock)
    旋转矩阵(Rotate Matrix)的性质分析
  • 原文地址:https://www.cnblogs.com/riskyer/p/3283526.html
Copyright © 2011-2022 走看看