`

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,SqlServer,Oracle主键自动增长的设置进行了详细的分析介绍,需要的朋友参考下

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

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

    通用数据库格式转换工具V1.1最新版,支持oracle,sqlsever,access等数据库之间数据格式转换

    支持oracle,sqlsever,access等数据库之间数据格式转换:即Oracle转SQL Server;SQL Server转Oracle;Oracle转Access;Access转Oracle;SQL Server转Access, Access转SQL Server等。可以实现数据库的移植,异构数据库...

    创建oracle数据库中表的主键和自增

    在oracle中可以利用触发器创建自增,从而完成我们像在sql server与mysql中定义的主键自增的功能。从而方便我们的开发

    sql 主键自增

    在mysql中,直接把表的主键设为auto_increment类型,在MS SQLServer中,如果把表的主键设为identity类型, 在Oracle中,可以为每张表的主键创建一个单独的序列,然后从这个序列中获取自动增加的标识符,把它赋值给...

    数据库迁移工具.rar

    自己做的一个数据库迁移工具,可以在 SQL Server、MySQL、Oracle 三种数据库之间互相迁移,迁移包括表、主键、索引、备注、数据。不会创建外键约束。在做迁移前,需建立一个空的目标数据库。运行环境需要是安装有 ...

    xo:命令行工具,用于为支持PostgreSQL,MySQL,SQLite,Oracle和Microsoft SQL ServerSQL数据库生成惯用的Go代码

    当前, xo可以为PostgreSQL,MySQL,Oracle,Microsoft SQL Server和SQLite3数据库生成表,枚举,存储过程和自定义SQL查询的类型。 注意:尽管xo生成的代码具有生产质量,但这不是xo的目标,也不是xo成为“银弹”的...

    基于2019汽车车型数据库(MySql示例)

    数据均借鉴后把主键转换成bigint类型,方便后续ETL清洗和迁移,发布仅仅用于交流学习 汽车品牌:temp_car_brand (460条记录) ...Excel.zip:是现有数据的导出,方便建立SqlServer或者Oracle的表后方便导入

    功能超强大完整博客源代码(ASP.NET2.0+Access or SQL Server)

    使用.net2.0编写,编码结构为N-Tige模式,数据库引擎采用了Nhibernate,可以支持当前流行的几乎所有数据库,包括SQLSERVER2000\SQLSERVER2005\ORACLE\MYSQL\DB2\ACCESS等,但是在默认情况下,我使用了ACCESS作为默认...

    MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别。 1、主键索引 主键索引,简称主键,原文是PRIMARY KEY,...

    对有自增长字段的表导入数据注意事项

    您可能感兴趣的文章:SQL Server设置主键自增长列(使用sql语句实现)oracle中的ID号实现自增长的方法mysql修改自增长主键int类型为char类型示例自增长键列统计信息的处理方法实现oracle数据库字段自增长(两种方式)

    mysql面试题 包含 初级 中级 高级 各级别知识点.rar

    作为一名编程人员,对MySQL...MySQL、SqlServer、oracle写出字符存储、字符串转时间 update语句可以修改结果集中的数据吗? B树和B+树的区别 你见过索引吗? 建索引的原则 索引的类型, 如主键索引 查看SQL执行计划

    mysql笔记,mysql优化图解

    1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF ☞ 数据库的分类 关系型数据库: mysql/oracle/db2/...

    程序员的SQL金典.rar

     本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数...

    Mycat-server-1.6-RELEASE源码

    支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster...

    程序员的SQL金典4-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    删除数据表中重复记录

    删除重复记录 删除数据表中的重复记录,包括MySQL、SQL Server、Oracle等

    SQLServer数据库设计.pdf

    最后决定选哪种数据库(Oracle、SQLServer、MySQL)来建库、建表。 Ø 需求分析阶段:数据库系统分析 秀⽓分析阶段的重点是调查、收集、分析客户的业务数据需求以及数据的安全性、完整性需求等。 需求分析步骤: 1、...

    Increment_Backup_To_Hive:一个增量备份关系数据库(MySQL, PostgreSQL, SQL Server, SQLite, Oracle等)到hive的php脚本工具

    To_Hive一个增量备份关系数据库(MySQL, PostgreSQL, SQL Server, SQLite, Oracle等)到hive的php脚本工具原理由于sqoop可定制性太差,本工具针对增量备份场景,备份某张表时只需要用户填写几个关键参数,就能自动化...

Global site tag (gtag.js) - Google Analytics