热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

大区中分配玩家唯一ID的办法

大区中分配玩家唯一ID的办法Mysql中除了使用auto_increment字段作为自增序号以外还有另外一种办法可以提供唯一序列号并且可以由一张表完成对多个序列要求的满足。www.2cto.com大致如下:1。创建一个简单...SyntaxHighlighter.all();

大区中分配玩家唯一ID的办法
 
Mysql中除了使用auto_increment字段作为自增序号以外 还有另外一种办法 可以提供
唯一序列号并且可以由一张表完成对多个序列要求的满足。 www.2cto.com  
 
大致如下:
1。创建一个简单表 
   create table SeqTab
   ( iSeqNo int not null default 0,
     iSeqType int not null default 0);
 
2。插入一调记录
   insert into SeqTab values(0,13);  // 0表示SeqNo初始值,13为SeqType,同一张表可对
多个应用提供Seq序列服务
 
3。不管多进程 or 单进程对SeqTab表同时进行访问,使用一下方法获取序列号
   1st->update SeqTab set iSeqNo=last_insert_id(iSeqNo+1) where iSeqType=13;
   2nd->select last_insert_id();
 
4。因多进程对SeqTab同时访问,进行update SeqTab set iSeqNo=last_insert_id(iSeqNo+1);时,
数据库保证了update的事务
完整性,且last_insert_id()是与当前mysql连接相关的,所以多进程同时使用时,也不会冲突。
 

推荐阅读
author-avatar
Openset
Less is more!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有