mysql 约束条件 auto_increment 自动增长起始值 布长 起始偏移量

时间:2022-02-03 09:05:20

 

 

我们指定一个字段为自动增长,他默认从1开始自动增长,默认值为1,每次增长为1,步长为1

 

模糊查询 like

% 代表任意个数字符 任意字符长度

 

 

查看mysql正在使用变量

show variables like “auto_inc%”

 

mysql> show variables like "auto_inc%" ;
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.00 sec)

 

布长

auto_increment_increment 1

起始偏移量
 auto_increment_offset 1


# 设置布长
session 是每次登陆产生一个连接

只在本次连接生效 退出了mysql就恢复原状 其他连接都看不到
基于会话级别
set session auto_increment_increment=5;

设置全局的布长
set global auto_increment_increment=5;

# 设置起始偏移量

注意:

如果auto_increment_offset起始偏移量 的值大于auto_increment_increment 布长 的值,
则auto_increment_offset 布长的值会被忽略
起始偏移量一定要<=布长
set global auto_increment_offset=4;

mysql> set global auto_increment_increment=5;
Query OK, 0 rows affected (0.00 sec)

mysql> set global auto_increment_offset=3;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

 

修改后要退出 重新登录mysql 再查看

mysql> show variables like "auto_inc%";
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 5     |
| auto_increment_offset    | 3     |
+--------------------------+-------+
2 rows in set (0.00 sec)

 

再创建一张 t21表

mysql> create table t21(
    -> id int primary key auto_increment,
    -> name char(16)
    -> );
Query OK, 0 rows affected (0.01 sec)


mysql> desc t21;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(11)  | NO   | PRI | NULL    | auto_increment |
| name  | char(16) | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
 

 

 
mysql> insert into t21(name) values('alex'),('mike'),('jack'),('peter');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
 

 

mysql> select * from t21;
+----+-------+
| id | name  |
+----+-------+
|  3 | alex  |
|  8 | mike  |
| 13 | jack  |
| 18 | peter |
+----+-------+
4 rows in set (0.00 sec)