mysql的自增主键的一些内容,也许有你

北京治湿疹的好医院 http://m.39.net/pf/a_9158974.html

现在大部分的软件开发都离不开数据库。而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了。

今天的内容就到这了。




转载请注明:http://www.aierlanlan.com/rzfs/1919.html