`

mysql 序列号生成器

阅读更多

      如果你不想使用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.测试

  1. mysql> SELECT seq('one'),seq('two'),seq('one'),seq('one');
  2. +------------+------------+------------+------------+
  3. | seq('one') | seq('two') | seq('one') | seq('one') |
  4. +------------+------------+------------+------------+
  5. |        102 |       1002 |        103 |        104 |
  6. +------------+------------+------------+------------+
  7. 1 row IN SET (0.00 sec)
分享到:
评论
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  
可否深入详细的讲解一下,如何运用?可以应用在什么地方。

谢谢

相关推荐

    简单DAO生成器、创建器(只支持MySQL)Java版

    一个简单的JAVA版的DAO生成器,通过反射机制获取bean实体类属性,前提是bean属性都有自动生成的getters和setters。 之前由于一个bean实体类就要写一个DAO,实在是没有效率,就想了这个方法,反射机制获取私有属性的...

    Navicat.Data.Modeler.2.1.7.x64英文版本及序列号生成器亲测好用2019年6月14日上传

    然而,关于压缩包中提到的序列号生成器,需要注意的是,使用非官方的序列号生成器可能涉及版权问题,违反软件许可协议,甚至可能导致计算机安全风险,如病毒或恶意软件。官方版本通常会提供试用期,若需要长期使用,...

    javaID生成器javaID生成器

    该 ID 生成器采用了时间戳结合序列号的方式来确保 ID 的唯一性。具体来说: - **时间戳**:使用当前时间作为 ID 的一部分,可以确保随着时间的变化,ID 不同。 - **序列号**:在同一毫秒内,使用一个递增的序列号来...

    NavicatMysql 最强MYSQL 管理工具,附带序列号,永久使用

    用户可以通过其内置的SQL编辑器编写和执行复杂的SQL语句,进行数据查询、更新和管理。 4. **数据同步**:Navicat提供了数据库同步功能,可以帮助用户比较并同步数据库之间的差异,确保数据的一致性。 5. **数据...

    mysql-sequence:nodejs的mysql序列生成器

    MySQL序数生成器是开发过程中常见的一种工具,特别是在Node.js环境中。这个名为"mysql-sequence"的库专门设计用于在MySQL数据库中创建和管理序列,它可以帮助开发者避免使用自增ID或其他复杂方法来生成唯一的序列号...

    MySQL连接客户端 Navicat7(mysql+gui)

    7. **序列号生成器**:标题中提到的“序列号生成器”可能是指Navicat7内置的功能,用于自动生成数据库中的唯一标识,这在创建主键或唯一索引时非常有用。 8. **数据传输**:在不同数据库间进行数据和结构的迁移,...

    xsequence-master.zip

    2. **MySQL作为序列号生成器**: MySQL的自增主键在单机环境下能很好地生成序列号,但在分布式系统中,多台服务器无法共享同一个自增ID。此项目可能利用了MySQL的分布式锁或分布式事务(如两阶段提交)来实现跨...

    CodeSmith 6.0 + 序列号

    3. **数据源支持**:CodeSmith可以连接到各种数据库,如SQL Server、Oracle、MySQL等,直接从中提取表结构和数据,生成相应的数据访问层代码。 4. **集成开发环境(IDE)插件**:CodeSmith 6.0可与Visual Studio...

    百度开源的分布式 ID 生成器,太强大了!(csdn)————程序.pdf

    《深入理解百度开源的分布式ID生成器UidGenerator》 在分布式系统中,生成全局唯一ID是一个常见的需求,而百度开源的UidGenerator就是这样一款强大的工具。它基于Snowflake模型,为系统提供了高性能且具有唯一性的...

    开源项目-imiskolee-seqno.zip

    imiskolee-seqno作为一个开源的分布式自增序列生成器,结合了MySQL的稳定性和分布式系统的灵活性,为开发人员提供了一种简单而高效的方法来解决序列号生成的问题。通过理解其工作原理和使用方式,我们可以更好地将其...

    mysqlfront

    8. 键生成器(keygen.exe):这个文件可能是用于生成MySQLFront的序列号或激活码的程序。然而,需要注意的是,非法使用此类工具可能违反软件许可协议,并可能导致法律问题。 总结起来,MySQLFront是MySQL数据库管理...

    sqlyog 绿色 免安装 附序列号

    6. 图形化SQL构建器:为非专业SQL编写者提供了友好的界面,自动生成SQL语句。 7. 触发器与存储过程管理:可视化编辑和测试触发器与存储过程,简化数据库对象的维护。 总的来说,SQLyog 8.14绿色免安装版是MySQL...

    Navicat全数据库汉化版,内含产品序列号

    9. **产品序列号**:提到标题中的产品序列号,这表明Navicat提供的是合法授权版本,用户可以享受完整的功能和服务,无需担心软件的合法性问题。 综上所述,Navicat全数据库汉化版是一个强大的数据库管理解决方案,...

    sysyog ultimate 12.09 带序列号

    5. **报告生成**:自动生成数据库结构报告和性能报告,便于理解和分享数据库状态。 在压缩包中,"x32"和"x64"分别代表适用于32位和64位操作系统的安装程序,这确保了无论用户使用哪种架构的计算机,都能顺利安装和...

    分布式系统ID生成器解决方案.docx

    因此,引入专门的分布式ID生成器解决方案成为必要。 ### UUID方案 UUID(Universally Unique Identifier)是一种常见的生成全局唯一ID的方法,但它存在一些问题: 1. **存储不便**:UUID由16字节的128位组成,通常...

    MySQL-FrontMy SQL Front数据库管理器 中文

    在描述中提到的"带keygen",keygen通常是指密钥生成器,用于生成软件激活码或序列号。在合法购买和使用软件的情况下,keygen是非法的,并且违反了软件版权。对于MySQL-Front这样的商业软件,合法使用应通过官方渠道...

    sqltool mysql 数据库链接工具

    1. **SciLexer.dll**:这可能是Scintilla组件的一个部分,Scintilla是一个源代码编辑器组件,通常用于提供语法高亮和代码编辑功能。 2. **Key.txt**:这很可能是包含注册码的文件,用户可以通过输入其中的代码来激活...

    mysql网络数据库指南(中文版) part1

    7.3.1 生成历史同盟目录 218 7.3.2 发送成员资格更新通知 223 7.3.3 历史同盟成员项目编辑 227 7.3.4 寻找共同兴趣的历史同盟成员 231 7.3.5 联机历史同盟目录 232 7.4 在 Web 应用程序中使用 DBI 234 7.4.1 ...

    MySQL数据库管理工具

    "SN.txt"文件可能是包含软件序列号的文本文件,用户在安装过程中可能需要输入这个序列号以激活完整版本的MySQL-Front。这强调了软件的合法性和授权的重要性,使用未经授权的软件可能会导致法律问题,并可能不享受...

Global site tag (gtag.js) - Google Analytics