mysql 自增字段、属性

mysql自增属性

参考文章

https://www.php.cn/mysql-tutorials-489209.html

https://blog.csdn.net/qq_41045806/article/details/108310772

在Mysql中,可以为某一属性设置自增属性,可以很好地为我们解决属性值重复的问题。

在mysql中,使用auto_increment关键字来设置列属性自增

字段名 属性类型 AUTO_INCREMENT;

//设置自增的起始值
alter table 表名 auto_increment =;

// 设置自增的步长
alter table 表名 auto_increment_offset =;

前提条件:

  1. 一个表中只能有一个自增字段
  2. 该字段的数据类型必须是整数类型
  3. 该字段必须定义为键,如UNIQUE KEY, PRIMARY KEY
  4. 默认的自增起始值是1,步长是1
  5. 在插入时,若自增字段插入NULL、0、DEFAULT或省略该字段,则会使用自增值
  6. 自增时,会从该字段中的所有值中选一个最大值,然后加一个步长
  7. 若插入的值是一个具体的值,则不会使用自增值
  8. 用delete清空表时,自增值不会改变
  9. 用truncate清空表时,自增值还原

来看一个实例

// 创建一个表并设置自增id
create table user(
id int auto_increment primary key,
name varchar(20)
);

image-20221213205832751

修改起始值

如何修改的自增的起始值,有两种方式

  1. 第一种方式,在创建表时给出
create table user(
id int auto_increment primary key,
name varchar(20)
)auto_increment=100;
  1. 第二种方式
-- 设置表的自增起始值
alter table user auto_increment= 100;

image-20221213210251069

修改步长

步长的值的给出有两种方式,一种是基于会话的步长,另一种是基于全局的步长。

  1. 基于会话级别的
-- 查看会话自增值
show session variables like 'auto_inc%';
-- 设置自增步长为100
set session auto_increment_increment = 100;
-- 设置自增起始值为5
set session auto_increment_offset = 5;

当本次的会话关闭后,再次连接数据库,这些属性就会恢复到默认值

设置完上面的代码后,再来试一下

image-20221213210901526

  1. 全局级别
-- 查看全局自增值
show global variables like 'auto_inc%';
-- 设置全局自增步长
set global auto_increment_increment = 100;
-- 设置全局自增起始值
set global auto_increment_offset = 9;

当会话和全局中都有同一个变量时,优先使用会话的

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值