我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PostgreSQL数据库实现表字段的自增

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PostgreSQL数据库实现表字段的自增

在使用MySQL的时候,创建表结构时可以通过关键字AUTO_INCREMENT来指定主键是否自增。在PostgreSQL数据库中,使用序列来实现字段的自增。

PostgreSQL序列是一种特殊的用于生产整数序列数据库对象。序列通常用于主键列,与mysql的AUTO_INCREMENT 概念类似。

PostgreSQL 提供三种序列伪类型,分别为SMALLSERIAL, SERIAL, BIGSERIAL,对应范围如下:

NameStorage SizeRange
SMALLSERIAL2 bytes1 to 32,767
SERIAL4 bytes1 to 2,147,483,647
BIGSERIAL8 bytes1 to 922,337,2036,854,775,807

创建表时使用SERIAL伪类型定义序列:

CREATE TABLE table_name(    id SERIAL);

赋值serial伪类型给id列,PostgreSQL将执行下列步骤:

  • 创建序列对象并设置下一个生成值作为列的缺省值。
  • 给对应列增加NOT NULL约束,因为序列总是生成一个整数值,不能为null值。
  • 赋值序列的拥有者给id列,因此当id列或表被删除时,序列对象自动被删除。

对应背后执行语句:

CREATE SEQUENCE table_name_id_seq; CREATE TABLE table_name (    id integer NOT NULL DEFAULT nextval('table_name_id_seq')); ALTER SEQUENCE table_name_id_seqOWNED BY table_name.id;

创建表时设置主键自增

创建表

CREATE TABLE student(    id   SERIAL PRIMARY KEY,    name VARCHAR);

插入数据

可以忽略对应列或使用default关键字都可以给serial赋值

INSERT INTO student(name) VALUES ('小明');INSERT INTO student(id, name) VALUES (DEFAULT, '小红');

修改已有表主键为自增

已有表结构

CREATE TABLE student(    id   int4 PRIMARY KEY,    name VARCHAR);

创建序列

CREATE SEQUENCE student_id_seq START 1;

代码中的1表示此主键从1开始,注意:如果项目中的表已经有数据,那么START 后边的数字一定要比数据库中的主键字段的最大值要大或者相同

修改主键默认值

ALTER TABLE student    ALTER COLUMN id SET DEFAULT nextval('student_id_seq'::regclass);

也可使用Navicat设计表修改字段默认值
在这里插入图片描述

来源地址:https://blog.csdn.net/aaaaaaa1516682014292/article/details/128130697

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PostgreSQL数据库实现表字段的自增

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PostgreSQL数据库实现表字段的自增

在使用MySQL的时候,创建表结构时可以通过关键字AUTO_INCREMENT来指定主键是否自增。在PostgreSQL数据库中,使用序列来实现字段的自增。 PostgreSQL序列是一种特殊的用于生产整数序列数据库对象。序列通常用于主键列
2023-08-19

mysql数据库表增添字段,删除字段,修改字段的排列等操作

目录一、mysql修改表名二、mysql修改数据的字段类型三、mysql修改字段名四、mysql添加字段1、添加没有约束性的字段2、添加一个有约束性的字段3、在表的第一列添加一个字段4、在数据表中指定列之后添加一个字段五、mysql删除字段
2022-07-26

oracle数据库表怎么实现自增主键

这篇文章主要讲解了“oracle数据库表怎么实现自增主键”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle数据库表怎么实现自增主键”吧!一、前言几天建表需要用到自增主键,于是使用序列
2023-07-02

oracle数据库表实现自增主键的方法实例

目录http://www.cppcns.com一、前言二、实现主键自动增长1、创建表格2、创建自增序列3、创建触发器4、测试新增语句总结一、前言几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键
2022-06-23

postgresql数据库自动备份怎么实现

有多种方法可以实现PostgreSQL数据库的自动备份,以下是其中一种常见的方法:编写备份脚本:可以编写一个 shell 脚本或者 Python 脚本来实现定时备份数据库的功能。通过使用 pg_dump 命令来备份数据库,并将备份文件保存在
postgresql数据库自动备份怎么实现
2024-04-08

Oracle实现主键字段自增的四种方式

目录oracle实现主键自增有4种方式:方式一:Identity Columns新特性自增准备工作:方式二:创建自增序列,创建表时,给主键字段默认使用自增序列方式三:创建自增序列,使用触发器使主键自增方式四:创建自增序列,插入语句(inse
2023-03-13

Oracle实现主键字段自增的方式有哪些

今天小编给大家分享一下Oracle实现主键字段自增的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Oracle实现
2023-03-15

MyBatis-Plus 实现数据库字段更新为 NULL

feeMapper.update(Wrappers.lambdaUpdate() .eq(FeePO::getId, feeDO.getId()) .set(ObjectUtils.isNotEmpty(feeDO.getMoney()), Fee
MyBatis-Plus 实现数据库字段更新为 NULL
2016-02-29

Postgresql数据库中的json类型字段使用示例详解

目录1. json概述2. PostgreSQL数据库中使用Json类型字段2.1. 创建表定义字段信息2.2. 增加2.3. 查询键值2.3.1. 查询键2.3.2. 查询值2.3.3. where查询条件使android用json键值作
2023-02-09

数据库中的图片字段如何在报表中呈现

本篇文章为大家展示了数据库中的图片字段如何在报表中呈现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在 web 端我们查看一些数据时,为了方便用户理解数据的计算方法,会在鼠标指向格子的时候出现一些提
2023-06-03

数据库中的图片字段怎么在报表中呈现

数据库中的图片字段怎么在报表中呈现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。概述报表除了以文字方式呈现内容,嵌入图片也是常见需求。图片的来源有很多种,比如应用目录、服务器应
2023-06-04

编程热搜

目录