标签:初始值 记录 AUTO INCREAMENT 增长 主键 创建 id
自增长-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删除表 ,重建表。
标签:初始值,记录,AUTO,INCREAMENT,增长,主键,创建,id 来源: https://www.cnblogs.com/Abby123wen/p/11177535.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。