1、auto_increment

理解1

auto_increment是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第二跳数据时,主键值是2,不是1。

例如:

create table `test`

(

`id` int(10) not null auto_increment, -- 表示自增列

`name` varchar(20) not null,

primary key(`id`)

)

auto_increment = 1; -- 表示自增起始大小-- 这样就可以创建一个表`test`,id为自增列

-- 执行语句 insert into test (`name`) values ('名字');

-- 就可以插入一行数据为: 1 '名字'

扩展资料:

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

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

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

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

4、AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效。

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

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

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

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

理解2

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()获取刚刚自增过的值。

mysql数据库 auto_increment_mysql学习笔记(二:中的auto_increment 理解相关推荐

  1. B站《一天学会 MySQL 数据库》学习笔记

    B站<一天学会 MySQL 数据库>学习笔记 老司机带我飞 职场十字诀:思考.计划.行动.总结.反思 ​关注他 4 人赞同了该文章 登录和退出MySQL服务器 # 登录MySQL $ my ...

  2. django连接mysql数据库_Django学习笔记(4)——Django连接数据库

    前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...

  3. Node.js框架Express与MySQL数据库的学习笔记

    一.数据库的基本概念 1.什么是数据库 数据库(database)是用来组织.存储和管理数据的仓库. 2.常见的数据库及分类 常见的数据库有:MySQL 数据库.Oracle 数据库(收费).SQL ...

  4. MySQL数据库的学习笔记

    基础篇MySQL 需要数据库数据文件的可以找我要. 基础语句 连接数据库: `mysql -uroot -pdong ``# u 后面跟用户名 p 后面是密码` 查看数据库: `show databa ...

  5. 数学学习笔记(二)柯西-黎曼方程理解

    理解不一定对,只是一种感悟,想简单记录一下. 柯西-黎曼方程是复变函数在一点可微的必要条件,证明不难.因为可微,所以就列出线性主部表出的一个式子,实部对实部,虚部对虚部,可以求得 这个方程式很简单,随 ...

  6. 【笔记】MySQL的基础学习(二)

    [笔记]MySQL的基础学习(二) MySQL 老男孩  一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...

  7. mysql root密码忘记2018_MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记

    本文主要向大家介绍了MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 退出mysql方法 quit或者e ...

  8. Mysql学习笔记(二)——表格及数据的插入

    Mysql学习笔记(二)--表格及数据的插入 文章目录 Mysql学习笔记(二)--表格及数据的插入 1.Mysql常用指令 2.创建表格 A.数据类型 B.完整性约束条件 3.查看表格 4.修改表格 ...

  9. Mysql 无障碍轻松学习(二)数据库利器DataGrip 下载与无限期试用

    Mysql 无障碍轻松学习(二)数据库利器DataGrip 下载与无限期试用 Mysql 无障碍学习系列 Mysql 无障碍轻松学习(一)Linux下安装与配置 文章目录 Mysql 无障碍轻松学习( ...

最新文章

  1. Python:从零搭建Redis-Scrapy分布式爬虫
  2. 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常
  3. 昨晚,我们的消费者居然停止消费kafka集群数据了
  4. 什么是上采样和下采样
  5. 基于人工智能方法的手写数字图像识别_【工程分析】基于ResNet的手写数字识别...
  6. 智能车竞赛技术报告 | 智能车视觉 - 首都师范大学 - 首师智能视觉
  7. Python入门实战题目
  8. deepin root密码_Deepin安装MySQL
  9. 复现网状的记忆Transformer图像描述模型(失败)
  10. 随机模块random、os模块、sys模块、shutil模块
  11. python代码技巧_让你python代码更快的3个小技巧
  12. python提取pdf表格信息
  13. Python replace() 和 re.sub() 字符串字符替换
  14. python 表格格式输出_简单介绍python输出列表元素的所有排列形式
  15. python安装成功之后教程_python安装教程 Pycharm安装详细教程
  16. 基于PSIM及其DLL模块的单相全桥并网逆变器仿真
  17. cad抛物线曲线lisp_cad画缓和曲线lisp程序(1)
  18. Eclipse 无法查看第三方jar包文件源代码解决方法(转载https://www.cnblogs.com/1995hxt/p/5252098.html自己备用)
  19. 给重回正路的大二学生:戒急戒躁中前行
  20. windows server 2008 64 位 上安装 postgreSQL 、 openbravo 报错解决

热门文章

  1. nginx + ftp搭建文件服务器
  2. fp5139应用电路图_基于FP5139的可调节电压源适配器
  3. UCN(User-Centric Networks,用户中心网络)
  4. 人工智能-----自然语言处理(NLP)基础理解
  5. 微信小程序云开发—校园动物图鉴
  6. 一个摆烂年轻人对手机的需求
  7. Keil 5(MDK 5)中的 Pack Installer下载不了库文件包的解决替代方法(在Keil官网下载Packs库文件)
  8. 通过ffmpeg把图片转换成视频
  9. MODIFY STRUCTURE和ALTER TABLE的区别?
  10. XR迈向10亿级必须解决的3个问题