本文主要介绍 SQL(Structured Query Language)中的自增(AUTO_INCREMENT)字段的相关知识。

1 概述

AUTO_INCREMENT 会在新记录插入表中时,生成一个唯一的数字。

如果希望在每次插入新记录时,自动地创建主键字段的值,那么就可以在表中创建一个 AUTO_INCREMENT 字段。

2 用法

例如,使用下列语句创建表 customers,同时将主键 customer_id 设置为自增字段,命令如下:

mysql> create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Query OK, 0 rows affected (0.03 sec)

3 说明

1. 如果把“NULL”插入到 AUTO_INCREMENT 数据列里,MySQL 将自动生成下一个序列编号。序列编号从 1 开始,并以“1”为基数递增;

2. 把“0”插入 AUTO_INCREMENT 数据列的效果,与插入“NULL”值一样,但不建议这样做,最好还是直接插入“NULL”值;

3. 在插入记录时,如果没有为 AUTO_INCREMENT 数据列明确地指定一个数值,则等同插入“NULL”值;

4. 在插入或更新记录时,如果为 AUTO_INCREMENT 数据列明确指定了一个数值,则会出现两种情况:情况一,如果插入的值与已有的编号重复,则会出现错误信息,因为 AUTO_INCREMENT 数据列的值必须是唯一的;情况二,如果插入的值大于现有编号的值,则会把该值插入到数据列中,并使 AUTO_INCREMENT 数据列的下一个编号从这个新的编号值开始递增(即跳过了一些编号)。

SQL中自增(AUTO_INCREMENT)字段介绍相关推荐

  1. 通过程序获得SQL Server自增型字段的函数:GetKey

    通过程序获得SQL Server自增型字段的函数:GetKey 概述: 通过程序来产生自增型字段,可以避免多用户操作的读取脏数据,操作也很简便.可以更好的在程序中控制这些关键字段的数值. 关键步骤: ...

  2. Mysql在sql中截取时间类型字段的年月日和时间-DATE_FORMAT() 函数

    Mysql在sql中截取时间类型字段的年月日和时间 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式.我们使用 N ...

  3. oracle同sql中isnull无法,SQL中的ISNULL函数使用介绍

    这篇文章主要为大家详细介绍了SQL中的ISNULL函数使用介绍,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ISNULL 使用指定的替换值替换 ...

  4. sql中模糊查询的字段中包含百分号%的语句

    sql中模糊查询的字段中包含百分号%的语句: select * from 表名 where 字段 like '%\%%' ESCAPE '\'; Mysql里用\%,比如: select * from ...

  5. mysql中自增auto_increment功能的相关设置及问题

    1. mysql中的自增auto_increment功能相信每位phper都用过,本文就为大家分享一下mysql字段自增功能的具体查看及设置方法 mysql中的自增auto_increment功能相信 ...

  6. sql中的indexof,函数介绍

    取出文件名中的后缀名,例如:1.exe变成exe declare @fileName varchar(100) set @fileName='aaa.exe' select substring(@fi ...

  7. oracle dba_hist tablepsace,oracle数据库dba_hist等视图中的Delta相关字段介绍

    从10g开始,我们采用awr报告来分析数据库的性能,我们发现增加了很多dba_hist相关的视图,其中基于时间相关的字段delta开始出现,对于我们计算语句的时间消耗很有帮助! 其实Delta 表示第 ...

  8. oracle数据库dba_hist等视图中的Delta相关字段介绍

    从10g开始,我们采用awr报告来分析数据库的性能,我们发现增加了很多dba_hist相关的视图,其中基于时间相关的字段delta开始出现,对于我们计算语句的时间消耗很有帮助! 其实Delta 表示第 ...

  9. mysql的datepart函数_MySQL中的 DATE_FORMAT 与 SQL 中的 DATEPART()函数使用介绍

    本小白最近学习MySQL,因为之前是已经有学过微软大佬的SQL Server所以自认为理解的还是稍快的(滑鸡),好了说正事. 今天在写一个查询语句时,需要用到 一个日期函数:DATEPART( ) 因 ...

  10. 如何取得SQL中自增伴位的下一个值

    一般來說, 俱有 identity 屬性欄位的 table 的目前值可以很容易地利用 max 函數來取得. 不過, 也很有可能 max 該筆資料已被刪除了, 所以利用 max 查找出來的結果不正確. ...

最新文章

  1. 掌握管理Linux磁盘和分区的方法 创建并挂载文件系统以及 创建并管理LVM
  2. ecma 2018, javascript spread syntax behaves like Object.assign
  3. thttpd+php 不加载php.ini 问题
  4. java中functional interface的分类和使用
  5. C# C/S 图片验证码功能源码
  6. 科研项目 | 深度参与前沿课题研究,全英华人教授协会(ABCP)资深学者亲授
  7. Java中不常见的关键字 / 修饰符(volatile , native , transient)
  8. 4.添加监听,使地图随鼠标,键盘移动并改变大小
  9. for的部分使用方法
  10. 【PAT】敲笨钟 (20 分)
  11. 盘点:2017年GitHub上30个优秀的机器学习项目
  12. 谷歌浏览器控制台preview乱码问题及原因
  13. CATIA P3 V5-6R2018 软件下载
  14. 【菜鸟窝出品】 python的变量和逻辑基础(python数据分析入门)
  15. 岭南学院python课程作业2-1
  16. FW: 业精于勤:量级与数量级的差异
  17. php 循环结构的联系题,php - 烧脑题,有一个程序循环逻辑问题,急在线等
  18. 融资、量产和一栈式布局,这家Tier 1如此备战高阶智驾决赛圈
  19. Inno Setup实例教程之一:软件安装和demo使用
  20. PYTHON 黑帽资料

热门文章

  1. 基于redis集群实现的分布式锁,可用于秒杀,定时器。
  2. 各国“未雨绸缪”致网络安全陷入困境 安全防御诱发“防御性入侵”
  3. java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
  4. RecyclerView 下拉刷新和加载更多
  5. [Java] Maven 建立 Spring MVC 工程
  6. 骑行在路上的IT两年
  7. 从Windows 1.0到Vista启动画面回顾
  8. [洛谷P1407][国家集训队]稳定婚姻
  9. MVVM 实战之计算器
  10. Java Script基础(一)