mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据,代码为【last_number = last_number + increment_by】。
mysql手动获取自增主键的方法:
通过创建存储过程外加函数的方式维护一张sequences表来获取数据(一次解决终身受用)。
可以指定每次自增的大小,以及初始数。
select nextval('testdata') as batchidcreate definer=`admin`@`%` function `nextval`(seq_name varchar (50)) returns bigint(20)begin update sequences set last_number = last_number + increment_by where sequence_name = seq_name; return currval (seq_name);end;
create definer=`admin`@`%` function `currval`(seq_name varchar (50)) returns bigint(20) no sqlbegin select last_number into @value from sequences where sequence_name = seq_name; return @value;end;
drop table if exists `sequences`;create table `sequences` ( `sequence_owner` varchar(30) character set utf8mb4 collate utf8mb4_bin not null, `sequence_name` varchar(30) character set utf8mb4 collate utf8mb4_bin not null, `min_value` bigint(20) null default 1, `max_value` bigint(20) null default null, `increment_by` bigint(20) not null default 1, `cycle_flag` varchar(1) character set utf8mb4 collate utf8mb4_bin null default null, `order_flag` varchar(1) character set utf8mb4 collate utf8mb4_bin null default null, `cache_size` bigint(20) not null, `last_number` bigint(20) not null, primary key (`sequence_name`) using btree, unique index `sel`(`sequence_owner`, `sequence_name`) using btree) engine = innodb character set = utf8mb4 collate = utf8mb4_bin row_format = compact; -- ------------------------------ records of sequences-- ----------------------------insert into `sequences` values ('scm', 'testdata', 1, 9999999999, 1, 'n', 'y', 20, 0);insert into `sequences` values ('scm', 'seq', 1, 9999999999, 1, 'n', 'n', 20, 0); set foreign_key_checks = 1;
更多相关免费学习推荐:mysql教程(视频)
以上就是mysql如何手动获取自增主键的详细内容。