Auto-increment 会在新记录插入表中时生成一个唯一的数字。

我们通常希望在每次插入新记录时,自动地创建主键字段的值。

我们可以在表中创建一个 auto-increment 字段。

用于 MySQL 的语法

把 "Persons" 表中的 "ID" 列定义为 auto-increment 主键字段:

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。

默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。

要让 AUTO_INCREMENT 序列以其他的值起始,请使用下面的 SQL 语法:

ALTER TABLE Persons AUTO_INCREMENT=100

要在 "Persons" 表中插入新记录,我们不必为 "ID" 列规定值(会自动添加一个唯一的值):

INSERT INTO Persons (FirstName,LastName) VALUES ('Lars','Monsen')

上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"ID" 列会被赋予一个唯一的值。"FirstName" 列会被设置为 "Lars",

"LastName" 列会被设置为 "Monsen"。

用于SQL Server的语法  
    把 "Persons" 表中的 "ID" 列定义为 auto-increment 主键字段:

CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL Server使用IDENTITY关键字来执行auto-increment任务。
    在上面的例子中,IDENTITY的开始值是1,每条记录递增1。

提示:要规定 "ID" 列以 10 起始且递增 5,请把 identity 改为 IDENTITY(10,5)。

要在 "Persons" 表中插入新记录,我们不必为 "ID" 列规定值(会自动添加一个唯一的值):

INSERT INTO Persons (FirstName,LastName) VALUES ('Lars','Monsen')

上面的SQL语句会在"Persons"表中插入一条新记录,"ID"列会被赋予一个唯一的值。"FirstName"列会被设置为"Lars","LastName"列会被设置为"Monsen"。

用于Access的语法
    把"Persons"表中的"ID"列定义为auto-increment主键字段:

CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Access使用AUTOINCREMENT关键字来执行auto-increment任务。

默认的,AUTOINCREMENT的开始值是1,每条新记录递增1.

提示:要规定"ID"列以10起始且递增5,请把AUTOINCREMENT改为AUTOINCREMENT(10,5)。

要在"Persons"表中插入新记录,我们不必为"ID"列规定值(会自动添加一个唯一的值):

INSERT INTO Persons (FirstName,LastName) VALUES ('Lars','Monsen')

上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"ID" 列会被赋予一个唯一的值。"FirstName" 列会被设置为 "Lars","LastName" 列会被设置为 "Monsen"。

语法 for Oracle

通过sequence对象(该对象生成数字序列)创建auto-increment字段。

请使用下面的CREATE SEQUENCE 语法:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

上面的代码创建一个名为 seq_person 的 sequence 对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高性能。cache 选项规定了为了提高访问速度要存储多少个序列值。

要在 "Persons" 表中插入新记录,我们必须使用 nextval 函数(该函数从 seq_person 序列中取回下一个值):

INSERT INTO Persons (ID,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')

上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"ID" 列会被赋值为来自 seq_person 序列的下一个数字。"FirstName"

列 会被设置为 "Lars","LastName" 列会被设置为 "Monsen"。

笔记

给已经存在的colume添加自增语法:

ALTER TABLE table_name CHANGE column_name column_name data_type(size) constraint_name AUTO_INCREMENT;

比如:

ALTER TABLE student CHANGE id id INT( 11 ) NOT NULL AUTO_INCREMENT;

参考:

https://www.yuque.com/docs/share/0b01efaf-eac9-41fb-b9c5-4a68c0cd16b8

SQL AUTO INCREMENT相关推荐

  1. SQL AUTO INCREMENT 字段

    SQL AUTO INCREMENT 字段 Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INCREMENT 字段 我们通常希望在每次插入新记录时,自动地创建主键字 ...

  2. 十七 SQL ALTER 与 AUTO INCREMENT

    SQL ALTER TABLE 语句 ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中添加列,请使用下面 ...

  3. autoincrement mysql_SQL AUTO INCREMENT 字段 | 菜鸟教程

    SQL AUTO INCREMENT 字段 Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INCREMENT 字段 我们通常希望在每次插入新记录时,自动地创建主键字 ...

  4. Mysql 自动递增(AUTO INCREMENT) 资料

    AUTO INCREMENT 使用 检索最近自动生成AUTO_INCREMENT值 设置1以外的值开始 InnoDB AUTO_INCREMENT 计数器初始化 5.7版本及之前 8.0版本 查询表的 ...

  5. PostgreSQL AUTO INCREMENT

    PostgreSQL AUTO INCREMENT(自动增长) AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字. PostgreSQL 使用序列来标识字段的自增长,数 ...

  6. PostgreSQL AUTO INCREMENT(自动增长)

    PostgreSQL AUTO INCREMENT(自动增长) AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字. PostgreSQL 使用序列来标识字段的自增长,数 ...

  7. MySQL事务 - 自增ID的回滚以及Auto Increment在InnoDB的实现

    自增ID未回滚 首先做一个测试 CREATE TABLE auto_inc_test( id int auto_increment, test_id int, primary key id(id))E ...

  8. [GBase 8s 教程]GBase 8s 自动增长(AUTO INCREMENT)

    AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字. GBase 8s 使用序列来标识字段的自增长,数据类型有 serial.serial8 和 bigserial . ...

  9. Navicat Lite查看表的DDL 、Auto Increment ;增加表的unique索引 外键

    一.查看表的DDL 左键选中表→右键→点击Object Information. 右侧就会多出两个选项(如图),然后点击DDL即可查看数据表的定义语言 二.查看表的Auto Increment以及增加 ...

最新文章

  1. 洛谷——P1031 均分纸牌
  2. mysql+rsyslog+loganalyzer的部署方案
  3. C++ STL 优先队列
  4. JavaScript学习总结(七)——JavaScript函数(function)
  5. Oracle监听器—静态注册
  6. google浏览器调试
  7. 【开发工具】makefile之override的作用
  8. [转载] 分布式系统trace实践
  9. dnf全部使用_DNF的命令使用教学
  10. python 分词 词性_分词及词性标注
  11. 阿里云盘来了,百度网盘VS阿里云盘,你更看好谁!
  12. Source Insight等宽字体及对齐设置方式
  13. Java 交互小实例:(ATM机模拟、饮料自助机模拟)
  14. linux+显卡驱动下载官网下载地址,下载:NVIDIA显卡Linux驱动256.44正式版
  15. windows11安装微软商店的ubuntu报错,已解决
  16. 图解kafka中hw,leo,isr
  17. 苹果手机密码设置在哪里_sim卡密码设置在哪里-sim卡密码设置介绍
  18. 架构师之路(3)---架构师的职责
  19. 前端开发:npm install报错npm ERR! enoent ENOENT:no such file or directory, open…的解决方法
  20. 2019重大信息安全事件_2019上半年信息安全工程师下午案例分析真题与答案解析...

热门文章

  1. 运动蓝牙耳机什么牌子好?性价比高的无线蓝牙耳机
  2. 前端开发和后端开发的区别
  3. 数据库系统期末总结(三)(往届试卷2018年12月A卷、B卷、E卷,2019年5月A卷,选择题终篇)
  4. 为啥214被塞狗粮的单身汪,520还会被塞狗粮
  5. kali安装配置使用手册
  6. hdu 2072 单词数(C语言)
  7. Tensorflow图像识别-2
  8. H264中4x4、8x8和16x16尺寸对应场景
  9. idea中如何生成程序运行的时序图
  10. 【每日训练】排序子序列