浏览 8338 次
锁定老帖子 主题:mysql 序列号生成器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-21
如果你不想使用mysql的自动递增,但又想实现主键序列号的功能,可以使用下面的方法,通过函数用一张表去维护生成多个表的序列号,简单又实用
1.创建生成多个表的序列号的数据维护表 CREATE TABLE seq (
2.插入几条初始化数据 INSERT INTO seq VALUES('one',100);
3.创建函数以生成序列号 CREATE FUNCTION seq(seq_name char (20)) returns int
4.测试
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-09
可否深入详细的讲解一下,如何运用?可以应用在什么地方。
谢谢 |
|
返回顶楼 | |
发表时间:2009-11-09
这种东西,其实没有什么意义。
可以由应用程序来生成有序的id,方便操作,更方便取刚插入的ID,而不需要考虑并发等问题。 如果用一个服务做这个工作,还方便集群。 |
|
返回顶楼 | |
发表时间:2009-11-09
性能会比较差吧……
|
|
返回顶楼 | |
发表时间:2009-11-09
每次是update加1,性能很差,大批量的情况下会有问题的
相比之下,oracle是可以提前锁定一批序列号,存放在内存里面的。 |
|
返回顶楼 | |
发表时间:2009-11-09
nuthell 写道 可否深入详细的讲解一下,如何运用?可以应用在什么地方。
谢谢 本人主要是应用于数据插入时自动生成一个短标识,这样生成静态html或者做伪静态的时候的链接比较容易让搜索引擎或者人记住,没有考虑到并发性能问题 |
|
返回顶楼 | |
发表时间:2009-12-30
说白了,就是用一张表来记录,没意思。并发就死了
|
|
返回顶楼 | |