如果你不想使用mysql的自动递增,但又想实现主键序列号的功能,可以使用下面的方法,通过函数用一张表去维护生成多个表的序列号,简单又实用

1.创建生成多个表的序列号的数据维护表

CREATE TABLE seq (

name varchar(20) NOT NULL,

val int(10) UNSIGNED NOT NULL,

PRIMARY KEY  (name)

) ENGINE=MyISAM DEFAULT CHARSET=UTF-8

2.插入几条初始化数据

INSERT INTO seq VALUES('one',100);

INSERT INTO seq VALUES('two',1000);

3.创建函数以生成序列号

CREATE FUNCTION seq(seq_name char (20)) returns int

begin

UPDATE seq SET val=last_insert_id(val+1) WHERE name=seq_name;

RETURN last_insert_id();

end

4.测试

mysql> SELECT seq('one'),seq('two'),seq('one'),seq('one');

+------------+------------+------------+------------+

| seq('one') | seq('two') | seq('one') | seq('one') |

+------------+------------+------------+------------+

|        102 |       1002 |        103 |        104 |

+------------+------------+------------+------------+

1 row IN SET (0.00 sec)

分享到:

2009-10-21 22:58

浏览 2834

论坛回复 / 浏览 (6 / 8069)

分类:数据库

评论

6 楼

pekkle

2009-12-30

说白了,就是用一张表来记录,没意思。并发就死了

5 楼

coolzhi

2009-11-09

nuthell 写道

可否深入详细的讲解一下,如何运用?可以应用在什么地方。

谢谢

本人主要是应用于数据插入时自动生成一个短标识,这样生成静态html或者做伪静态的时候的链接比较容易让搜索引擎或者人记住,没有考虑到并发性能问题

4 楼

方世玉

2009-11-09

每次是update加1,性能很差,大批量的情况下会有问题的

相比之下,oracle是可以提前锁定一批序列号,存放在内存里面的。

3 楼

xiaoych

2009-11-09

性能会比较差吧……

2 楼

hardPass

2009-11-09

这种东西,其实没有什么意义。

可以由应用程序来生成有序的id,方便操作,更方便取刚插入的ID,而不需要考虑并发等问题。

如果用一个服务做这个工作,还方便集群。

1 楼

nuthell

2009-11-09

可否深入详细的讲解一下,如何运用?可以应用在什么地方。

谢谢

mysql序列号生成软件_mysql 序列号生成器相关推荐

  1. mysql语句在线生成网站_MYSQL语句生成器

    看到一位网友用JS做了一个这样一个类似的东西,于是试着用PHP试试看效果. 多提意见,谢谢! MYSQL语句生成器 2005-01-11 初步模型 2005-01-13 修改了可以输入数字及数字为开头 ...

  2. 根据MAC地址生成软件的序列号

    下面是一个简单的生成liense的方法,通过机器的MAC地址,生成一个序列号. #include "stdafx.h" #include <stdio.h> #incl ...

  3. mysql 存储过程 生成数据_mysql使用存储过程,批量生成测试数据

    1.存储过程代码 delimiter $$ DROP PROCEDURE IF EXISTS create_service_data$$ create procedure create_service ...

  4. mysql 批量生成测试数据_mysql生成批量数据进行数据测试

    1.1目的 在MySQL很多测试场景,需要人工生成一些测试数据来测试.本文提供一个构造MySQL大表存储过程,可以生成包含用户名,手机号码,出生日期等字段.也可以通过滤重来使得手机号码不重复,模拟现实 ...

  5. 给MYSQL账号充值的软件_MYSQL数据库指定数据库表给会员充值充值教程

    MYSQL数据库指定数据库表给会员充值充值教程 $db=new cls_mysql(array( 'dbhost'=>'要充值数据库IP', 'dbname'=>'要充值的数据库用户名', ...

  6. 企业常用mysql集群软件_mysql企业常用集群架构

    转自 https://blog.csdn.net/kingice1014/article/details/76020061 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般 ...

  7. mysql binlog生成异常_mysql binlog故障演练

    mysql备份恢复 mysqldump备份 企业故障恢复案例: 正在运行的网站系统 mysql数据库 数据量25G,日业务量10-15M 备份策略: 每天晚上23点通过计划任务调用mysqldump执 ...

  8. mysql 数据库复制软件_mysql 快速复制数据库

    MyIsam 发布相对简单,把库下面所有文件拷过去就好了.复制Innodb的做法相对复杂,下面是我在innodb 上复制数据库的方法 [root@localhost data]# mysql -u r ...

  9. mysql和mongodb软件_MySQL和MongoDB设计实例对比

    MySQL是关系型数据库中的明星,MongoDB是文档型数据库中的翘楚.下面通过一个设计实例对比一下二者:假设我们正在维护一个手机产品库,里面除了包含手机的名称,品牌等基本信息,还包含了待机时间,外观 ...

  10. mysql双机备份软件_MySQL双机备份

    安装完mysql之后,有了新的需求,就是需要有一台服务器用来做数据备份使用,以达到容灾的目的,这样需要怎么做呢?还有我们需要进行多点访问来减小单点压力的时候又要怎么办呢?这个时候我们就引入了主从复制和 ...

最新文章

  1. 2022-2028年中国锂电池设备行业深度调研及投资前景预测报告
  2. python的虚拟环境
  3. WORD2007只可以打开一个文档,且打开后文本有时出现不可 编辑情况
  4. python【数据结构与算法】剪枝策略
  5. 一款IDEA插件神器,帮你一键转换DTO、VO、BO、PO、DO
  6. SpringBoot+MyBatis+Shiro 搭建杂谈
  7. 快速准备电子设计大赛
  8. 背景图片随着浏览器拖动而变化
  9. 【进出理论】投入与收益
  10. [Editor][001][vim]VIM的辅助工具们
  11. 力扣529.扫雷游戏
  12. java历史记录怎么写_我想知道像这样的历史记录查询界面,用java swing来做,应该怎么做?...
  13. iBATIS框架源码剖析
  14. 华为工程师都没有解决的问题,华为交换机acl不能使用易维版显示
  15. 雅虎相册批量下载 Beta2 版本 --纪念 5.12 汶川大地震
  16. 微信小程序的作用,到底能为企业带来什么价值呢?
  17. [学习经验] 孩子到底什么时候学习自然拼读和国际音标?
  18. Python学习之路:通过分片的方式修改列表的技巧(拓展知识)
  19. OpenCV每日函数 几何图像变换模块 (9) resize函数
  20. php5.3 register_globals,在PHP 5.3中PHP寄存器全局支持?(PHP register globals support in PHP 5.3?)...

热门文章

  1. 广数数控系统数据采集方案
  2. esp8266 爆改车间主任版本 使用 已解决
  3. 3dmax如何使阴天灯光设置更加自然
  4. java坦克大战爆炸效果_Java坦克大战 (五) 之产生敌方坦克和爆炸效果
  5. 栅栏密码--Python解密脚本
  6. python矩阵行秩函数_矩阵的秩的性质以及矩阵运算和矩阵的秩的关系
  7. java 如何执行dig 命令_dig命令简介
  8. 从dig命令理解DNS
  9. 从支付架构到风控报警,支付系统的设计如何环环相扣?
  10. 网易云kali linux工具,在kali下如何安装网易云音乐