9.创建表-自增长(AUTO_INCREAMENT)
Posted abby123wen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.创建表-自增长(AUTO_INCREAMENT)相关的知识,希望对你有一定的参考价值。
自增长-AUTO_INCREAMENT
之前说我们通过主键可以保证记录的唯一性,举个栗子,如果我们对人找一个主键的话,一般会找身份证号,因为身份证大家都不一样,以身份证为主键来保证记录的唯一性;
但是如果其他的表,可能不像人这样会存在身份证号的字段,这时候我们会引入一个id,我们习惯性对每一个表建一个id,这个id通过一种正整数的值来保证数据的唯一。第一条记录用1.第二个用2.依次往下增加。
通过自然数或者正整数保证每条记录的唯一,但正整数虽然想法很好,但控制起来并不简单,因为每一次要去数据库现在最大的是哪一个值,再往上+1,所以这时就引入了自增长的概念。
自增长:把这种字段的这种增长。1,2,3,4,5不再自己去维护,交由数据库去维护,但这种自增长它会自动去进行编号,需要注意的地方有:
1.必须与主键组合使用,即自增长的字段必须定义为主键。
2.默认情况下,起始值为1,每次增量为1
3.定义的语法也非常简单,在字段类型加AUTO_INCREAMENT
CREATE TABLE S(id INT PRINMARY KEY AUTO_INCREMENT,S_name VARCHAR(20));
当你建表的时候这样设置后,id这列的值就不需要填入了,它自动会赋值,第一条赋值为1;
1.当表中已经自动由自增长id为1和2 后,我手动指定第三条记录给一个id(1000)填入表格中,此时在插入一条数据不填id时,id会显示为1001,而非3,因为我们当前数据库会找到最大的值1000,在此基础+1;
2.当我在1的基础上再输入1001,此时会提示重复duplicate,因为唯一性。
3.当我再1的基础上再插入一条记录且id=3.是完全可以的,即:中间有没有用到的值,是可以使用的。
4.假设我删掉1000,和1001,再新建一条记录不设置id值,保存,此时为1002.也就是说,虽然你把它删掉了,它已经把前面最大的值已经记录到数据库中去了,所以以1002使用。
重置自增长初始值:
什么叫重置,也就是说把自增长的初始值给改掉。
1.ALTER TABLE S AUTO_INCREMENT=0;(这种适合表中没有记录的时候,如果有记录的情况下设置,是无效的。)
2.TRUNCATE TABLE S;(TRUNCATE 表示截断的意思,表示把数据给清空,清空后表中没有记录,再增加数据的时候,会从1开始。这里需要注意的是:通过TRUNCATE 截取、清空数据后都是从初始值开始的,但是如果是手动删除数据后,是没有影响的,仍然在删除前的最大数据基础上+1增加自增长值)
3删除表 ,重建表。
以上是关于9.创建表-自增长(AUTO_INCREAMENT)的主要内容,如果未能解决你的问题,请参考以下文章