现在大部分的软件开发都离不开数据库。而mysql也是经常会用到的一个数据库。mysql数据库中有一个主键生成规则,就是自增。也是我们经常会用到的。
今天我们就聊聊这个自增主键的一些内容。
创建自增主键
先来看看怎么创建自增主键。如上图中所示,只需要在创建表时在对应的列中用“AUTO_INCREMENT”声明即可。
那要如何使用这个自增主键呢,看看下面的示例。
使用自增主键
在insert语句中不指定设置了自增的列,那该列的值就会自增了。如果指定了值,就会按照指定的值做insert操作。
如上图的insert语句,不需要指定设置了自增的id列,id列就会按照规则进行自增。
那再来看看设置了id列会是什么效果呢。
可以看到,在指定了id列的值插入数据之后,id列在进行自增的时候就是从刚才指定的值开始自增了。
刚才指定了id列为7,那如果把自增列又指定会小于现有的id值插入一条语句,然后再进行自增会是什么效果呢。
我插入了一条id为6的数据,然后再通过自增插入c1值为“孙二”的数据,孙二的数据会是在刚才自增的基础上继续自增,而不是从6开始。
删除后面的数据再插入新数据
那如果把后面的数据删除掉,再用自增的方式插入数据,自增列id的值会是什么效果呢。
先把数据删除掉。
只剩下了id为1和2两条数据了,那这时再通过自增的方式插入数据,id的值会是几呢,是3吗?一起来看一下。
看来不是3,而是继续延续刚才的值进行自增。
插入失败时,自增列的效果
大家有没有注意到我开始时建表的语句里,c1列设置了唯一索引。就是为了在这个地方演示用的。
因为c1列已经有了值为“王五”的数据,所以上图第一条sql语句执行是会报错的。那第二条sql语句执行后,插入到数据库中的id列的值会是11吗?
第一条sql语句执行报错可以看到,即便第一条sql语句执行报错,没有成功插入数据库,但是11这个值也是会被用掉,再进行插入数据时用的值就是12了。
今天的内容就到这了。