关于mysql 创建序列

关于mysql 创建序列,第1张

mysql下序列是用关键字auto_crement,起始值及步长增长值由系统以下参数确定:

mysql>show variables like '%auto_increment%'

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

| Variable_name| Value |

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

| auto_increment_increment | 1 |

| auto_increment_offset| 1 |

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

2 rows in set (0.00 sec)

mysql>

其中auto_increment_offset表示起始值(且必须由1开始),参数表示auto_increment_increment表示步长增长值(只能是正整数)。

建表示例:

create table t111

(id int auto_increment primary key,

remark varchar(50)

)

由上面所说可知,你的需求在mysql下单用auto_crement是实现不了的。建议你考虑别的办法吧,或由一些变通的方式实现。

比如说你创建了一个表userinfos

create table userinfos(

userid int primary key,

username varchar(20)

)

//给userinfos添加序列

update userinfos set userid = last_insert_id(userid+1)

//然后查询序列

select last_insert_id()

或者也可以这样

create table userinfos(

userid int primary key not null auto_increment,

username varchar(20)

)

mysql是没有序列的,我最近刚做完一个项目也是从oralce移植到mysql数据库上,oracle中 HIbernate配置都是这样

<generator class="sequence">

<param name="sequence">SEQUENCE_CHILDREM_ARCHIVE_ID</param>

</generator>

,到移植到mysql数据库中之后

<generator class="identity"></generator>

identity或者是increment都是可以滴,前提是你mysql表中的主键是auto_increatement的int类型的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8553848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存