“自增步长”通常指数据库中自增字段(AUTO_INCREMENT / IDENTITY 等)每次增加的值。不同数据库设置方式不同,下面给你常见数据库的说明:
MySQL 中自增步长分为全局和会话级别。
查看当前步长
SHOW VARIABLES LIKE 'auto_increment_increment';
设置步长(全局)
SET GLOBAL auto_increment_increment = 2;
设置步长(当前会话)
SET SESSION auto_increment_increment = 2;
建表时示例
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY
) AUTO_INCREMENT = 1;
注意:MySQL 建表时只能设起始值,步长需通过变量设置。
使用 IDENTITY(起始值, 步长)
CREATE TABLE user (
id INT IDENTITY(1, 2) PRIMARY KEY,
name VARCHAR(50)
);
表示:从 1 开始,每次加 2。
PostgreSQL 使用 序列(SEQUENCE)
CREATE SEQUENCE user_id_seq
START WITH 1
INCREMENT BY 2;
CREATE TABLE user (
id INT DEFAULT nextval('user_id_seq') PRIMARY KEY
);
或修改已有序列:
ALTER SEQUENCE user_id_seq INCREMENT BY 2;
Oracle 也用序列:
CREATE SEQUENCE user_seq
START WITH 1
INCREMENT BY 2;
INSERT INTO user(id, name)
VALUES(user_seq.NEXTVAL, 'Tom');
SQLite 只支持步长为 1,不能修改步长。
如果你能告诉我用的是哪种数据库,我可以给你更精确、可直接用的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。