在设计一些数据表时,我们经常遇到这样一种情况:需要表中的一个字段根据另一字段进行自增长,比如,在数据表中存储玩家的武器信息时,需要存储玩家的武器对应的bagid,这就是一个根据玩家自己的id(玩家id)进行自增长的字段。

这就需要我们进行合理的数据表设计了,要设计支持这种情况的数据表,我们现需要了解常用的数据表类型,mysql数据表主要支持两大类6种类型:

1)事务安全型Transaction-Safe:包括InnoDB和BDB(最新版本已不支持BDB);

2)非事务安全型Non-Transaction-Safe:包括MyISAM、ISAM、Merge、Heap;

,这里我们只考虑最常用的两种类型InnoDB和MyISAM,若要创建支持上述功能的数据表,则数据表的类型需要是MyISAM类型,示例语句如下:

#创建数据表的语句

create table tablename
(
PlayerId int(10) not null,
BagId int(10) not null auto_increment,
WeaponId char(14) not null,
primary key(PlayerId, BagId)
) engine = MyISAM;

#测试向创建的表中插入数据

insert into tablename(PlayerId, WeaponId)
values(1000, "1000"),
(1000, "1001"),
(1001, "2000"),
(1002, "3000"),
(1000, "1003"),
(1002, "1001"),
(1000, "1005");

插入后的数据表如下所示:

PlayerId BagId WeaponId

1000 1 1000
1000 2 1001
1001 1 2000
1002 1 3000
1000 3 1003
1002 2 1001
1000 4 1005

mysql 建立表里某的个字段根据另一字段进行自增长的更多相关文章

  1. navicat为mysql建立索引

    索引的目的是大大提高查询效率,还有读写效率. kettle向sql里面插入,更新时,也要建立索引,可以大大提升处理时间. 但是建立索引报错:Specified key was too long; ma ...

  2. mysql判断表里面一个逗号分隔的字符串是否包含单个字符串、查询结果用逗号分隔

    1.mysql判断表里面一个逗号分隔的字符串是否包含单个字符串 : FIND_IN_SET select * from tablename where FIND_IN_SET(传的参数,匹配字段) 例 ...

  3. mysql建立索引的几大原则

    (转)仅供自己学习,特此记录 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录.例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息 ...

  4. vue+nodejs+express+mysql 建立一个在线网盘程序

    vue+nodejs+express+mysql 建立一个在线网盘程序 目录 vue+nodejs+express+mysql 建立一个在线网盘程序 第一章 开发环境准备 1.1 开发所用工具简介 1 ...

  5. 如何为mysql建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

  6. mysql建立索引类型及索引建立的原则

    索引类型:Unique(唯一索引,一般为主键),Normal(一般索引,普通字段,可做组合索引),索引方法:BTREE 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录 ...

  7. paip.解决 数据库mysql增加列 字段很慢添加字段很慢

    paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6    数据仅仅3w alter table xxx add column yyy int default ...

  8. mysql 建立索引场合及索引使用

    索引建立场合: ① where后边字段 适合建立索引 ② order by 排序字段适合建立索引 ③ 索引覆盖 即 所要查询的字段本身就是索引 直接在索引中查询数据. 例如 select name,a ...

  9. paip.提升性能--- mysql 建立索引 删除索引 很慢的解决.

    paip.提升性能--- mysql 建立索引 删除索引 很慢的解决. 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blo ...

随机推荐

  1. MFC中cannot find the definition (implementation) of this function 解决方法

    问题:使用vc6 在点击左侧class view中的一个方法实现时出现下面错误:    cannot find the definition (implementation) of this func ...

  2. 原生JavaScript 获取下一个/上一个同胞元素

    看JavaScript遇到的问题,研究了下 获取上一个或者下一个同胞元素,使用很多人会立马想到JQuery  prev() 和 next() 的确非常方便.那么原生的JavaScript该怎么获取 上 ...

  3. angularJs工作日记-自定义指令Directive01

    新项目组使用完善的angularMVVM设计思路架构,很庆幸能够来到这个项目组,在这里的每一天都能够学习到新的知识,为了防止以后忘记,记录一下个人的理解 首先接触最多的是directive,direc ...

  4. linux 的一些 不常见的指标

    1. linux 的理论 最大用户数   2^32 -1   数据来源  linux就是这个范 (没验证) 2. mv 竟然不能修改文件更新时间

  5. 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)

    本篇文章记录的是一些有用的 Emacs 配置,有些是自己原创,有些是借鉴别人(能记起来出处的我放了链接). 规定:C 代表 Ctrl,M 代表 Alt. 1.设置一次跳跃 n 行的快捷键 按 C-M- ...

  6. ALTER TABLE 语句与 FOREIGN KEY 约束"FK_SCHEDULE_REFERENCE_POSTCONF"冲突。

    主要原因是因为两个表中有数据不匹配,只要把不匹配的数据删掉就行了.

  7. prototype.js 源码解读(01)

    prototype.js是一个设计的非常优雅且很有实用价值的js基础类库,其源码非常值得研究.研究它的源码不仅能提升个人水平,而且对你打下坚实的js基础也很有帮助.因本人技术水平有限,该解读仅供参考. ...

  8. Sed&awk笔记之sed篇

    http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...

  9. 如何用python语句获得Python的安装目录

    官方文档上有写的,sys.executable是当前Python解释器(或者其他Python实现)的路径去掉后面一个路径分隔符(Windows下是'\')后的部分即可 >>>impo ...

  10. 测试一下MarkDown

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...