`
wly719
  • 浏览: 290724 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

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

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

我们可以在表中创建一个 auto-increment 字段。
用于 MySQL 的语法
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:

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

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

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

要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:
ALTER TABLE Persons AUTO_INCREMENT=100


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

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')
上面的 SQL 语句会在 "Persons" 表中插入一条新纪录。"P_Id" 会被赋予一个唯一的值。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。

用于 SQL Server 的语法
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:

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

MS SQL 使用 IDENTITY 关键字来执行 auto-increment 任务。

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

要规定 "P_Id" 列以 20 起始且递增 10,请把 identity 改为 IDENTITY(20,10)

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

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')
上面的 SQL 语句会在 "Persons" 表中插入一条新纪录。"P_Id" 会被赋予一个唯一的值。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。
用于 Oracle 的语法
在 Oracle 中,代码稍微复杂一点。

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

请使用下面的 CREATE SEQUENCE 语法:

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

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

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
上面的 SQL 语句会在 "Persons" 表中插入一条新纪录。"P_Id" 的赋值是来自 seq_person 序列的下一个数字。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。
分享到:
评论

相关推荐

    前端开源库-mongoose-auto-increment

    **mongoose-auto-increment** 是一...总之,`mongoose-auto-increment` 是一个非常实用的工具,简化了在Mongoose中实现自增字段的过程,对于需要生成唯一标识符的应用场景,如用户注册或订单创建,它是一个高效的选择。

    MySQL AUTO_INCREMENT 主键

    每当向`student`表中插入新记录时,如果未显式提供`id`值,则MySQL将自动为其分配一个新的唯一整数值。 #### 3. AUTO_INCREMENT 的实现细节 - **存储引擎支持**:不同的存储引擎对`AUTO_INCREMENT`的支持有所不同...

    主键自增长(AUTO-INCREMENT)

    主键自增长(AUTO_INCREMENT)

    MySQL查询和修改auto_increment的方法

    在MySQL数据库中,`auto_increment` 是一个非常重要的特性,它允许系统自动为新插入的行生成唯一的标识符,通常用于主键字段。这个特性在处理大量数据时尤其有用,因为它消除了手动设置唯一ID的需求。下面我们将深入...

    数据插入异常

    在进行MySQL数据库操作时,可能会遇到“Failed to read auto-increment value from storage engine”这样的错误提示。此错误通常发生在尝试向设置了自动增长(AUTO_INCREMENT)属性的字段插入数据时。 #### 二、...

    SQL插入脚本生成器

    在大多数关系型数据库管理系统(如MySQL、SQL Server或PostgreSQL)中,可以设置一个字段为自动递增(auto-increment)。在SQL插入脚本生成器中,用户可以选择是否包含自增ID字段。如果选择不包含,生成的脚本将忽略...

    beego-self-increment代码.zip

    在Beego框架中,如果你想要在插入数据时自动获取自增ID,可以使用ORM的`AutoIncr`和`AutoincrStr`字段标签,以及`Model`的`Insert`方法。例如: ```go import "github.com/astaxie/beego/orm" type MyModel struct...

    mongoose_auto_increment:Mongoose 自动增长列插件

    mongoose_auto_increment 创建一个Counter用来记录所有Collections增长数,以Mongoose plugin的方式与对应的Scheme相关联,以此实现Mongoose自动增长列

    Laravel开发-increment-decrement .zip

    在本压缩包文件“Laravel开发-increment-decrement .zip”中,可能包含了一些关于如何在Laravel项目中使用这两个方法的示例、代码片段或者教程。 1. **increment() 方法** - `increment()` 方法用于将指定列的值...

    python mysql自增字段AUTO_INCREMENT值的修改方式

    当向表中插入新记录时,无需手动指定这个字段的值,MySQL会自动为该字段生成一个唯一的递增值。 在Python中,我们通常使用mysql-connector或pymysql模块来连接MySQL数据库并执行SQL语句。在开始之前,需要确保已经...

    Laravel开发-increment-decrement

    例如,如果我们有一个用户表,其中包含一个`post_count`字段来记录用户的帖子数量,我们可以通过以下方式增加该字段的值: ```php $user = User::find(1); $user->increment('post_count'); ``` 这行代码会找到ID...

    MySQL 序列 AUTO_INCREMENT详解及实例代码

    MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...

    Oracle数据库表序列ID自增生成器

    在本例中,我们可以创建一个触发器,使其在插入新行时自动获取序列的下一个值,并将其设置为主键字段的值。触发器创建语法如下: ```sql CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW ...

    vim-visual-increment:visual-increment.vim-使用CTRL + AX通过可视模式创建数字或字母的递增序列

    `vim-visual-increment` 插件正是这样一个工具,它为 Vim 带来了一个新的功能,允许用户在可视模式下通过按下 `CTRL + A` 和 `X` 快捷键来快速创建数字或字母的递增序列。 **插件安装与使用** 首先,为了安装 `vim...

    blog_auto_increment

    标题“blog_auto_increment”暗示了我们讨论的主题与数据库中的自动递增字段有关,这通常用于在插入新记录时自动生成唯一的标识符。在数据库管理中,自动递增(Auto Increment)是一个非常重要的概念,尤其在关系型...

    解析mysql中的auto_increment的问题

    MySQL中的auto_increment是一种非常实用的属性,用于为表中的记录自动生成唯一的ID。这通常用于主键字段,确保每条记录都可以通过一个唯一的标识符进行区分。然而,auto_increment在处理记录删除、数据库重启以及...

    mongoose-autoincrement:用于自动递增编号ID的Mongoose插件

    猫鼬自动递增 Mongoose插件,用于自动递增编号ID。 安装 npm install --save mongoose-autoincrement 用法 var mongoose = require ( 'mongoose' ) ; var autoincrement = require ( 'mongoose-autoincrement' ) ;...

    release-it, 用于Git仓库和npm软件包的CLI发布工具.zip

    在终端中,你可以简单地使用以下命令来发布新的npm软件包版本: ```bash npx release-it ``` 或者,如果你想手动指定版本增量: ```bash npx release-it --increment=minor ``` **社区与开源:** 作为开源项目...

    php生成唯一数字id的方法汇总

    那就给MySQL数据库中的表的id一个AUTO_INCREMENT(自增)属性,每次插入一条数据时,id自动+1,然后使用mysql_insert_id()或LAST_INSERT_ID()返回这个自增后的id。 当然,这个问题已经有现成的解决方法了,使用...

Global site tag (gtag.js) - Google Analytics