游戏合服方法 ——MSQL数据库的拷贝与合并

游戏合服方法

——MSQL数据库的拷贝与合并


在游戏上线运营过程,经常需要执行合服操作,需要对多个库的相同表数据进行合并。

常见的数据库拷贝方式有两种:

第一种:复制Table +Data,这个作法Primay、index key都不会复制, 需要手动添加.
CREATETABLE new_db.table_name SELECT * FROM old_db.table_name;
ALTER TABLE new_db.table_name ADD PRIMARY KEY (id);

第二种作法: 先复制Table schema, 再INSERT Data. 这个作法Schema是会被同时复制的
CREATETABLE new_db.table_name LIKE old_db.table_name;
INSERT new_db.table_name SELECT * FROM old_db.table_name;

这里最推荐的作法是第二种

另外,游戏上线后必然会有版本更新,就会导致不同游戏版本的数据库结构有差异,所以,在合服之前,必须保证两个游戏数据库已升级成相同的。

在此基础之下,数据库中因为开服顺序的不同,同一张表的字段顺序也会有所不同,这样在执行插入语句时也会出现错误

可以先通过如下语句,在插入之前,先将该表的字段结构取出来
SELECT COLUMN_NAME FROM information_schema.COLUMNSWHERE table_name =' table_name' and table_schema ='new_db';

再将插入语句修改成指定字段修改的格式
INSERTINTO new_db.table_name(column1, column2,...) (SELECT column1, column2,... FROM old_db.table_name);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值