关于mysql 创建序列
发布网友
发布时间:2022-04-07 22:27
我来回答
共2个回答
懂视网
时间:2022-04-08 02:48
CREATE TABLE emp_seq ( seq VARCHAR(8));
INSERT INTO emp_seq VALUES('0');
UPDATE emp_seq SET seq = LAST_INSERT_ID(seq+1);
SELECT LAST_INSERT_ID();
这东西完全跟oracle的sequence一致。即使在update之后,select之前有其它session也update了,本session得到的,仍然是自己update的那一个值。
上面的语句在orcle中是这样子写的。
create sequence emp_seq start with 1 increment by 1;
Mysql中创建序列的方法
标签:jdbc mysql 数据库 java
热心网友
时间:2022-04-07 23:56
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是实现不了的。建议你考虑别的办法吧,或由一些变通的方式实现。