mysql中auto_increment是干什么的?

mysql中auto_increment是干什么的?,第1张

MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能.

可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。

在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。

可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。

可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值。

当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,

情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;

情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。

如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。

如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。

扩展资料

在使用AUTO_INCREMENT时,应注意以下几点:

1、AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。

2、设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。

3、AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复(即是主键或者主键的一部分)。

4、AUTO_INCREMENT数据列必须具备NOT NULL属性。

5、AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。

一旦达到上限,AUTO_INCREMENT就会失效。

6、当进行全表删除时,MySQL AUTO_INCREMENT会从1重新开始编号。

这是因为进行全表 *** 作时,MySQL(和PHP搭配之最佳组合)实际是做了这样的优化 *** 作:先把数据表里的所有数据和索引删除,然后重建数据表。

7、如果想删除所有的数据行又想保留序列编号信息,可这样用一个带where的delete命令以抑制MySQL(和PHP搭配之最佳组合)的优化:delete from table_name where 1。

也可以用last_insert_id()获取刚刚自增过的值。

参考资料:IT专家网-MYSQL中取得最后一条记录

如果有

phpmyadmin

的话,可以直接在建表的时候,有个“额外”这个选项,点击进入,选中AUTO_INCREMENT

如果不能的话,则用php页面创建表的时候,在

sql语句

插入$sql="create

table

$table_name(id

varchar(4)

not

null

primary

key

auto_increment"再执行就可以了

需要说明的是,这个字段不是必须填入的~

1、单击“保存更改”按钮。

2、验证成功,输入 show create database day15 点击回车(day15为数据库名称)。

3、在下方的信息栏即可看到当前查询数据库编码信息。

4、 如果需要修改编码信息,可以输入alter database day15 default character set gbk 点击回车即可。

5、打开第三方的数据库管理软件,找到需要查看编码信息数据库,右键点击选中【更改数据库】。

6、在更改 *** 作栏,可以看到当前数据库默认的编码信息。

7、点击下拉菜单,可以修改数据库编码方式。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6844748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存