一口气说出4种主流数据库ID自增长,面试官懵了

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 一口气说出4种主流数据库ID自增长,面试官懵了

自增长ID的实现主要依赖数据库的设置,需要先在数据表中创建对应的自增ID字段。


具体创建方式每种数据库可能会有区别,本文将简单介绍几种常见数据库的自增id设置方式。


⛳️ 1.SQL Server


e681caf931054a6db0c886212d5c5a4a.png


🌈 1.1 图形化界面创建


假设在 SQL Server 数据库中存在下面一张数据表,

我们需要将其 ID 列实现自增长,就可以在列属性中设置是标识,修改标识增量和标识种子,


✨ ✨✨ ✨✨ ✨ 如下图:

7932995c8fa54d3884600bb48e10cec4.png


🌈 1.2 SQL语句创建


也可以使用 SQL 语句来创建,identity(1,1)指定 ID 由 1 开始,每次增长 1.


create table jeames(


id int identity(1,1) primary key,

kh varchar(20)

)


⛳️ 2.MySQL



f0dea3d173be4eee9bc7ac0ad4c2ab81.png


🌈 2.1 auto_increment自增ID


基于数据库的auto_increment自增ID来实现


b7b16c29afad4bfa84c29efd2683d145.png


##表中插入数据

mysql> insert into TEST_ID(value) VALUES (‘IT’);

mysql> insert into TEST_ID(value) VALUES ('CSDN);

mysql> insert into TEST_ID(value) VALUES ('IT);


e8ce0271d79b4254a1d35e33f69e8e70.png


🌈 2.2 修改自动增长起始值


mysql> alter table TEST_ID AUTO_INCREMENT=100

mysql> insert into TEST_ID(value) VALUES (‘001’);

mysql> insert into TEST_ID(value) VALUES (‘002’);


a794122320ab4da7b4e809263c124541.png


⛳️ 3.Oracle


在 Oracle 数据库中,提供了序列的功能,可以通过 Oracle 的序列及触发器,实现主键的自增长。


🌈 3.1 创建序列


CREATE SEQUENCE seq_name

INCREMENT BY 1

START WITH 1

NOMAXVALUE

NOCYCLE

CACHE 10;

6be477a71b6a43edbc54565b128ba887.png

🌈 3.2 创建触发器


##创建表

create table jem_db(id int,name varchar(30));



##创建触发器

CREATE OR REPLACE TRIGGER TRG_name

BEFORE INSERT ON jem_db

FOR EACH ROW

BEGIN

SELECT seq_name.nextval INTO :new.ID FROM dual ;

END;

73d18d9e99e94257a2f35dde872893b4.png


##插入数据验证

insert into jem_db (name) values(‘IT邦德’);

insert into jem_db (name) values(‘CSDN’);

insert into jem_db (name) values(‘热搜榜’);

select * from jem_db;


0892aabf388847f59c36f0c1f7fafd05.png


⛳️ 4.postgreSQL



PostgreSQL 使用序列来标识字段的自增长

CREATE TABLE runoob

(

id serial NOT NULL,

alttext text,

imgurl text

)

SMALLSERIAL、SERIAL 和 BIGSERIAL 范围:


6c9051c84d17447e80c6f7d98ab9744c.png


✨ ✨✨ ✨✨ ✨ 实例


假定我们要创建一张 COMPANY 表,并创建下面几个字段:


🐴🐴 第一步:登陆PG


2a5061d09ec74f7abd827e6781cbc75e.png


🐴🐴 第二步:创建表


CREATE TABLE COMPANY(

ID SERIAL PRIMARY KEY,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);


c6b2a54fb1d8435e85fec8431d65c88a.png


🐴🐴 第三步:现在往表中插入几条记录



INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Paul’, 32, ‘California’, 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES (‘Allen’, 25, ‘Texas’, 15000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES (‘Teddy’, 23, ‘Norway’, 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Mark’, 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘David’, 27, ‘Texas’, 85000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Kim’, 22, ‘South-Hall’, 45000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘James’, 24, ‘Houston’, 10000.00 );


28607711502f44e384db1e8fab9014f1.png


🐴🐴 查看 COMPANY 表的记录如下

df348eed93c641d4b13c9c53dcb51082.png


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
1044
分享
相关文章
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
[go 面试] 缓存策略与应对数据库压力的良方
[go 面试] 缓存策略与应对数据库压力的良方
面试题:如何解决缓存和数据库的一致性问题?
面试题:如何解决缓存和数据库的一致性问题?
208 1
实时计算 Flink版产品使用问题之如何去除源数据库的ID
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
142 0
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
235 0
sql数据库面试题
以下是一些SQL数据库的面试题: 1. 什么是SQL?你能简要描述一下它的特点吗? 2. SQL中的主键和外键是什么?它们有什么作用? 3. 你能解释一下什么是索引吗?索引在数据库中的作用是
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(下)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
303 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等