MySQL创建student表时设置AUTO_INCREMENT起始值1000且步长为2
修改后的表创建语句及自增配置
要实现Std_id从1000开始、每次自增2的需求,你需要在创建表时指定自增起始值,同时调整MySQL的自增步长变量,具体操作如下:
1. 调整自增步长
MySQL的自增步长由auto_increment_increment变量控制,可按需设置会话级或全局级:
- 会话级设置:仅对当前数据库连接生效,重启连接或MySQL服务后失效:
SET auto_increment_increment = 2; - 全局级设置:对所有后续新建的连接生效,重启MySQL服务后会失效(若要永久生效,需修改配置文件
my.cnf/my.ini,添加auto_increment_increment = 2):SET GLOBAL auto_increment_increment = 2;注意:全局设置需要具备
SUPER权限。
2. 创建表并指定自增起始值
在CREATE TABLE语句末尾添加AUTO_INCREMENT = 1000设置起始值,同时补充主键声明(MySQL要求AUTO_INCREMENT字段必须是主键或唯一键,原语句缺少该定义,会导致创建失败),修改后的完整语句如下:
CREATE TABLE school.student( Std_id INT NOT NULL AUTO_INCREMENT, Std_name CHAR(40) NOT NULL, Std_Birth DATE, Std_Group CHAR(2) CHECK(Std_Group IN ('G1', 'G2','G3','G4')), PRIMARY KEY (Std_id) ) AUTO_INCREMENT = 1000;
验证效果
执行上述设置后,插入测试数据:
INSERT INTO school.student(Std_name) VALUES ('Alice'), ('Bob'), ('Charlie');
查询表数据会得到符合预期的自增序列:
| Std_id | Std_name | Std_Birth | Std_Group |
|---|---|---|---|
| 1000 | Alice | NULL | NULL |
| 1002 | Bob | NULL | NULL |
| 1004 | Charlie | NULL | NULL |
内容的提问来源于stack exchange,提问作者blue kitten
相关产品推荐
相关产品推荐

