`

Mysql、SqlServer和Oracle主键自动增长的设置

    博客分类:
  • java
阅读更多
1、把主键定义为自动增长标识符类型

在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:

create table customers(id int auto_increment primary key not null, name varchar(15));

insert into customers(name) values("name1"),("name2");

select id from customers;

以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值。最后查询表中id字段,查询结果为:

id

1

2

由此可见,一旦把id设为auto_increment类型,mysql数据库会自动按递增的方式为主键赋值。

在MS SQLServer中,如果把表的主键设为identity类型,数据库就会自动为主键赋值。例如:

create table customers(id int identity(1,1) primary key not null, name varchar(15));

insert into customers(name) values("name1"),("name2");

select id from customers;

查询结果和mysql的一样。由此可见,一旦把id设为identity类型,MS SQLServer数据库会自动按递增的方式为主键赋值。identity包含两个参数,第一个参数表示起始值,第二个参数表示增量。

2、从序列中获取自动增长的标识符

在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给主键。例如一下语句创建了一个名为customer_id_seq的序列,这个序列的起始值为1,增量为2。

create sequence customer_id_seq increment by 2 start with 1

一旦定义了customer_id_seq序列,就可以访问序列的curval和nextval属性。

curval:返回序列的当前值

nextval:先增加序列的值,然后返回序列值

以下sql语句先创建了customers表,然后插入两条记录,在插入时设定了id和name字段的值,其中id字段的值来自于customer_id_seq序列。最后查询customers表中的id字段。

create table customers(id int primary key not null, name varchar(15));

insert into customers values(customer_id_seq.curval, "name1"),(customer_id_seq.nextval, "name2");

select id from customers;

如果在oracle中执行以上语句,查询结果为:

id

1

3
分享到:
评论

相关推荐

    深入Mysql,SqlServer,Oracle主键自动增长的设置详解

    本文将深入探讨MySQL、SQL Server和Oracle这三种主流数据库系统中主键自动增长的设置方法。 在MySQL中,主键自动增长是通过`auto_increment`关键字实现的。当你创建一个表并定义某个字段为`auto_increment`类型的...

    SQLserver、Oracle、Mysql语法与用法对比

    在SQL Server、Oracle和MySQL这三种关系型数据库管理系统(RDBMS)中,它们的SQL语法在很多方面具有相似性,但在某些特定操作上存在差异。以下是对这些系统中一些关键语法和用法的对比: 1. **查看表结构**: - ...

    SQLserver、Oracle、Mysql语法与用法对比.doc

    SQLserver、Oracle和Mysql是当前最主流的三种关系型数据库管理系统,它们在语法和用法上存在一些共性,但也各自具有特色。以下是对这三种数据库在常用操作上的对比分析。 1. **查看表结构**: - SQL Server 使用 `...

    通用SQL教程oracle,mysql,sqlserver

    本教程涵盖了SQL在三大主流数据库系统——Oracle、MySQL和SQL Server中的应用,旨在帮助学习者掌握通用的SQL知识,从而能够高效地进行数据查询、更新、插入和删除等操作。 在Oracle数据库中,SQL被广泛应用于数据的...

    Oracle|Sqlserver|MySql数据库表结构一键生成工具

    "Oracle|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...

    SQL Server转换为MySQL工具

    SQL Server是微软公司推出的一款关系型数据库管理系统,而MySQL则是由Oracle公司维护的开源、免费的DBMS。有时,由于业务迁移、成本优化或者技术栈的变化,用户可能需要将SQL Server的数据转换到MySQL中。这时,...

    mysql sqlserver orcle 数据库操作

    MySQL、SQL Server和Oracle是三款广泛使用的数据库管理系统,各自具有独特的特性和操作方式。下面将详细阐述这些系统在基本操作和特殊操作上的异同。 首先,关于设置主键,这是一个确保数据唯一性的关键步骤。在...

    mysql,sqlserver,Oracle 数据库生成javabean小工具

    本工具“mysql, sqlserver, Oracle 数据库生成javabean小工具”正是为了解决开发者手动编写javabean时的繁琐工作,它能够自动根据数据库中的表结构生成对应的javabean文件。 1. **数据库连接**: 工具支持三种主流...

    mysql和oracle和sql语句

    然而,尽管SQL是通用的,但MySQL、Oracle和SQL Server在语法和功能上还是存在一些差异。 MySQL是一款开源、免费的关系型数据库管理系统,广泛应用于Web应用。它的SQL语法简洁,易于学习,支持事务处理,但在复杂...

    SQLServer,MySQL,Oracle三者的区别.pdf

    《SQLServer,MySQL,Oracle三者的区别》 在IT领域,数据库的选择至关重要,因为它直接影响到系统的性能、稳定性和可扩展性。本文将对比分析Oracle、SQL Server和MySQL这三大主流数据库系统,帮助你了解它们之间的...

    SQL Server 打开或关闭自增长

    在SQL Server中,自增长(IDENTITY)列是一种特殊类型的字段,它会在每次插入新行时自动为该列提供一个唯一的、递增的值。这种功能对于创建序列化的主键非常有用,因为它们确保了数据的唯一性。然而,有时在特定情况...

    SQLServer,MySQL,Oracle三者的区别.docx

    本文将对比分析SQLServer、MySQL和Oracle这三种常用的数据库管理系统(DBMS),以帮助开发者和决策者了解它们之间的差异。 1. Oracle Oracle是一款企业级的数据库系统,以其高性能、高可用性和高度的可扩展性著称。...

    excel自动生成创建表语句mysql,sqlserver.xlsm

    excel中支持mysql(主键自增),sqlserver自动创建表语句,方便文档留存查看。oracle也写了宏指令,用office打开文档,按alt+F11自行改宏代码。

    千万级数据Sql Server 与Mysql分析

    本次测试的重点是分析在千万级数据下数据库的查询速度,首先得插入数据,采用 java 程序批量插入 1000 万条数据,分别插入 SQL Server 2008 和 Mysql 5.5 中。批量插入的方法就在 insert values 之后不断添加(…,…....

    骂人 脏字 过滤mysql_oracle_sqlserver数据库.txt

    根据提供的文件信息,本文将详细解析“骂人脏字过滤mysql_oracle_sqlserver数据库”的相关知识点,主要包括数据库设计、敏感词库构建以及过滤机制等方面。 ### 数据库设计 #### 表结构定义 根据文件中的SQL语句,...

    oracle mysql sql server 等数据库的分页要点解析

    分页技术在Oracle、MySQL和SQL Server等主流数据库系统中都有其独特的实现方式。 **为什么需要分页** 1. **方便用户查看**:在网页或应用程序中,如果一次性加载所有数据,用户可能会被海量信息淹没,分页则可以将...

    SQL Server导入MySQL.zip

    5. **处理索引和约束**:SQL Server和MySQL对索引和约束的实现有所不同,比如主键和唯一性约束。在MySQL中,可能需要重新创建这些约束,以保持数据的一致性和完整性。 6. **测试和验证**:迁移完成后,务必进行详尽...

    mysql,oracle,sqlserver分页

    id INT NOT NULL IDENTITY(1, 2) PRIMARY KEY, -- 设置为主键和自增长列,起始值为1,每次自增2 name VARCHAR(50) NOT NULL, sex VARCHAR(10) NOT NULL, age INT NOT NULL ); END INSERT INTO Users(name, ...

    在hibernate中实现oracle的自动增长

    与MySQL或SQL Server等其他数据库系统不同,Oracle不直接支持自增列(auto-increment column),而是通过序列(sequence)来间接实现这一功能。序列(sequence)是一种独立的对象,可以用于生成连续的整数值,常用于为主键...

Global site tag (gtag.js) - Google Analytics