三大数据库 sequence 之华山论剑 (一)

前言

本文将基于以下三种关系型数据库,对 sequence (序列) 展开讨论。

Oracle - 应用最广泛的商用关系型数据库

PostgreSQL - 功能最强大的开源关系型数据库

MySQL - 应用最广泛的开源关系型数据库

sequence 适用场景

主键

用于整型主键数据的生成,一般一个 sequence 仅用于一张表的主键。这是最常用的用途。

本文讨论的主要是此用途。

非主键

只使用 sequence 本身自增的功能,可多表共用一个 sequence,或整个数据库共用一个 sequence。

sequence 不适用的场景

对于要求实际的值一定是连续的(如1,2,3,4,5),sequence 则不适用。

首先,sequence 生成时是连续的,但由于其生成的值会丢失或被消耗掉等原因,从而导致实际使用时不一定是连续的。

sequence 用法一 显式调用

这种方式是单独创建 sequence 和表,在 INSERT 等语句中显式调用 sequence。

如下示例。

Oracle

SQL> CREATE SEQUENCE seq_test;

Sequence created.

SQL> CREATE TABLE tb_test (
    test_id NUMBER PRIMARY KEY
);  2    3  

Table created.

SQL> INSERT INTO tb_te
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值