mysql 分表 插入_mysql实现插入数据到分表

use mysql;

/*创建原始数据表*/

DROP TABLE IF EXISTS `articleinfo`;

CREATE TABLE `articleinfo`(

`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

`title` VARCHAR(20) DEFAULT NULL,

`content` VARCHAR(20) DEFAULT NULL,

`comment_time` VARCHAR(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

/*创建存储过程来新增部分数据到原始数据表*/

delimiter $$

drop procedure if exists proc_articleinfo;

create procedure proc_articleinfo()

begin

declare i int;

set i=1;

while(i<=32) do

insert into articleinfo(title,content,comment_time)

values (concat(‘数据库基础‘,i),concat(‘努力学习基础知识‘,i%4),DATE_FORMAT(NOW(),‘%Y-%m-%d %H:%i:%S‘));

set i=i+1;

end while;

end;

$$

delimiter ;

/*调用存储过程*/

call proc_articleinfo();

/*创建分表 */

DROP TABLE IF EXISTS `tb_articleinfo_0`;

CREATE TABLE `tb_articleinfo_0`(

`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

`title` VARCHAR(20) DEFAULT NULL,

`content` VARCHAR(20) DEFAULT NULL,

`comment_time` VARCHAR(20) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE `tb_articleinfo_1` LIKE `tb_articleinfo_0`;

CREATE TABLE `tb_articleinfo_2` LIKE `tb_articleinfo_0`;

CREATE TABLE `tb_articleinfo_3` LIKE `tb_articleinfo_0`;

/*创建主表*/

DROP TABLE IF EXISTS `tb_articleinfo`;

CREATE TABLE `tb_articleinfo`(

`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,

`title` VARCHAR(20) DEFAULT NULL,

`content` VARCHAR(20) DEFAULT NULL,

`comment_time` VARCHAR(20) DEFAULT NULL,

index(`id`)

) ENGINE=MRG_MYISAM UNION=(`tb_articleinfo_0`,`tb_articleinfo_1`,`tb_articleinfo_2`,`tb_articleinfo_3`) INSERT_METHOD=LAST DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

/*插入数据到分表*/

insert into tb_articleinfo_0(title,content,comment_time)

select title,content,comment_time from articleinfo where id%4=0;

insert into tb_articleinfo_1(title,content,comment_time)

select title,content,comment_time from articleinfo where id%4=1;

insert into tb_articleinfo_2(title,content,comment_time)

select title,content,comment_time from articleinfo where id%4=2;

insert into tb_articleinfo_3(title,content,comment_time)

select title,content,comment_time from articleinfo where id%4=3;

commit;

/*查询数据*/

select * from articleinfo;

select * from tb_articleinfo_0;

select * from tb_articleinfo_1;

select * from tb_articleinfo_2;

select * from tb_articleinfo_3;

原文:http://www.cnblogs.com/NiceTime/p/6664516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值