PostgreSQL 里面的 BIGSERIAL

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;


CREATE TABLE article
(
id BIGSERIAL NOT NULL PRIMARY KEY,
title character varying(255),
content TEXT ,
created timestamp without time zone,
url character varying(255)
);

  id BIGSERIAL NOT NULL PRIMARY KEY,

  id bigint NOT NULL PRIMARY KEY,
 
 

转载于:https://www.cnblogs.com/Amos-Turing/p/6888156.html

### 设置自增字段的方式 在同的SQL数据库管理系统中,设置自增字段的方法有所同。以下是几种常见SQL数据库管理系统的具体操作。 #### Microsoft SQL Server 对于Microsoft SQL Server而言,有两种主要的方式来定义自增字段: - **使用标识列(IDENTITY)** 当创建表时可以直接指定某一列为`IDENTITY`属性来自动增加该列的值[^1]。下面是一个简单的例子展示如何利用此特性创建一张新表并设定其ID作为自增长字段。 ```sql CREATE TABLE ExampleTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(50) ); ``` 这段代码中的`IDENTITY(1,1)`表示起始值为1,并且每次新增记录时递增值也为1。 - **使用序列(SEQUENCE)** 另一种方法是通过先建立一个独立于任何特定表格之外的对象——序列对象,之后再将其应用于目标表内某列上以达到相同效果。这给出了一段用于生成名为MySequence的新序列实例及其应用到ExampleTable上的语句片段: ```sql -- 创建一个新的序列 CREATE SEQUENCE MySequence START WITH 1 INCREMENT BY 1; -- 将序列关联至现有表的一列 ALTER TABLE ExampleTable ADD NewColumn AS NEXT VALUE FOR MySequence; ``` #### PostgreSQL 而在PostgreSQL环境下,则提供了更为丰富的选项去处理这类需求,主要包括但限于以下三种途径[^2]: - **标识列(IDENTITY)** 从PostgreSQL版本10开始支持直接声明带有`GENERATED ALWAYS/BY DEFAULT AS IDENTITY`特性的整数型数据类型的列来进行自动化编号分配工作。如下所示即是在新建表的同时指定了id这一列为自增量形式的例子。 ```sql CREATE TABLE example_table( id BIGINT GENERATED ALWAYS AS IDENTITY, name TEXT NOT NULL ); ``` - **序列(SEQUENCE)** 类似于MS SQL Server的做法,在PG同样可以借助单独存在的序列结构体完成同样的功能。下面是有关怎样构建sequence以及把它绑定给某个table column的具体做法说明。 ```sql -- 定义新的序列 CREATE SEQUENCE seq_example MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1; -- 修改已有表结构并向其中加入基于上述序列取值的新字段 ALTER TABLE example_table ADD COLUMN new_id BIGINT DEFAULT nextval('seq_example'); ``` - **SERIAL** 最后一种简便易行的选择就是采用内置关键字serial或bigserial来自动生成相应类型的数据列,默认情况下它们会隐含着背后有一个同名但同作用域下的sequence存在。这使得开发者无需显式地编写额外逻辑就能快速获得所需的结果集。 ```sql CREATE TABLE another_example ( serial_column SERIAL PRIMARY KEY, description VARCHAR(255) ); ``` 以上就是在几个主流关系型数据库产品面关于配置自增主键的一些基本介绍和技术细节分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值