1. 程式人生 > >資料庫系列--postgreSQL序列與id自增長

資料庫系列--postgreSQL序列與id自增長

一、問題背景

  將entity實體物件使用JPA持久化persist到資料庫時,需要設定id的自增長方式。程式碼片段如下:
  
(postgreSQL9.9.5)

@Id
    @SequenceGenerator(name = "engine_info_seq", sequenceName = "engine_info_id_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "engine_info_seq")
    private Integer id;

然而並無法實現id的自增長。
原因很簡單,無法找到名為engine_info_id_seq的SEQUENCE(序列)。

二、序列與id自增長的關係

個人理解:
所謂的自增長,實際上是將手動新增id的任務交給了序列SEQUENCE,定義好SEQUENCE的總長度,啟始值,每次增長的幅度等等。
下面是SEQUENCE的生成程式碼:

CREATE SEQUENCE public.engine_info_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 126
  CACHE 1;
ALTER
TABLE public.engine_info_id_seq OWNER TO postgres;

三、實現id自增長的完整步驟

在建立id欄位時,需要將id的型別設定為”serial”,會自動生成相應的序列。
如下:
id
序列程式碼:

CREATE SEQUENCE public.engine_info_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 126
  CACHE 1;
ALTER TABLE public.engine_info_id_seq
  OWNER TO
postgres;

相關推薦

資料庫系列postgreSQL序列id增長

一、問題背景   將entity實體物件使用JPA持久化persist到資料庫時,需要設定id的自增長方式。程式碼片段如下:    (postgreSQL9.9.5) @Id @Sequ

初學mysql(十)-資料庫之儲存過程、函式遊標-定義函式和流程控制(下)

上一篇部落格講了儲存過程、函式、以及遊標,這一篇部落格接著上一篇部落格來說。首先說說mysql資料庫中的流程控制及自定義函式的使用。 自定義函式: 根據所需要的功能,使用流程控制來完成所需要的功能,完成功能的程式碼就稱為自定義函式。要想完成自定義函式就必須學會流程控制的使

oracle id 增長

CREATE TABLE testTable1 ( ID INT NOT NULL, NAME VARCHAR2(4000) NOT NULL, PRIMARY KEY(ID) ) TABLESPACE MYDB; --建立自增ID,名稱為:表名_欄位名_SEQ CREA

Spring-boot mongodb ID增長註解實現 適用於JDK 1.7和JDK 1.8

開發工具Idea ,JDK1.8 Entity類 SeqInfo.java package com.gl.springbootdao.mongodb.entity; import lombok.Getter; import lombok.Setter; import lombok.T

Spring-boot mongodb ID增長註解實現 適用於JDK 1.7和JDK 1.8

開發工具Idea ,JDK1.8 Entity類 SeqInfo.java package com.gl.springbootdao.mongodb.entity; import lombok.Getter; import lombok.Setter; import l

MongoDB學習筆記一ID增長

概要 MongoDB 的_id欄位作為一個主鍵存在於所有文件的最頂層,_id必須是唯一的,而且總是具有唯一約束的索引。除了唯一約束,你可以在集合中的_id欄位上使用任何值, 以下這個指南描述了在_id上建立一個自增序列的兩種方式: Use Cou

MongoDB學習筆記一 ID增長

    以下是官網原文地址:     http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/     概要     MongoDB 的_id欄位作為一個主鍵存在於所有文件的最頂層,

SQL Server 重置ID增長

一、背景   SQL Server資料庫中表A中Id欄位的定義是:[Id] [int] IDENTITY(1,1),隨著資料的不斷增長,Id值已經接近2147483647(int的取值範圍為:-2 147 483 648 到 2 147 483 647)了,雖然已經對舊

Kafka原始碼深度解析系列1 訊息佇列的策略語義

-Kafka關鍵概念介紹 -訊息佇列的各種策略與語義 作為一個訊息佇列,Kafka在業界已經相當有名。相對傳統的RabbitMq/ActiveMq,Kafka天生就是分散式的,支援資料的分片、複製以及叢集的方便擴充套件。 與此同時,Kafka是高可靠的、持

《TCP/IP具體解釋》讀書筆記(21章)TCP的超時重傳

打開 定時器 是否 檢查 例如 技術 blog 信息 全部 TCP提供可靠的運輸層。它使用的方法之中的一個就是確認從還有一端收到的數據。但數據和確認都有可能會丟失。TCP通過在發送時設置一個定時器來解決這樣的問題。假設當定時器溢出時還沒有收到確認,它就重傳該數據。對於實現

蘋果新的編程語言 Swift 語言進階(十三)類型檢查類型嵌套

兩個類 nes left p s 查詢 text edi host letter 一 類型檢查 1、 類型檢查操作符 類型檢查用來檢查或轉換一個實例的類型到另外的類型的一種方式。 在Swift中,類型檢查使用is和as操作符來實現。

MySQL存儲引擎MyISAMInnoDB區別

多應用 基本 binlog sele detail bin insert details text MyISAM 和InnoDB 講解   InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型,這兩個表類型各有優劣,視具體應用而定。基本的差別為:MyISA

面向過程面向對象的本質區別對面向過程面向對象的一點感悟

層次 包括 感悟 兩種 上進 detail 計算 行為 向上 面向過程與面向對象的本質區別 一位計算機界的大師曾說過,“我認為,面向對象的目標從來都不是復用和擴展,而是提供一種處理復雜問題的方法”。 面向過程講究自頂向下逐步求精。找到一個系統的入口然後順藤摸瓜,分析出每一步

postgresql+postgis+pgrouting實現最短路徑查詢(1)線數據的處理和建立拓撲

分享圖片 date table 函數 top pda sql pos ima 1、ALTER TABLE beijing_line ADD COLUMN source integer; ALTER TABLE beijing_line ADD COLUMN target

NancyFx打造小型 WebAPI Microservice 的輕巧利器

需求 ict content ogr tostring coo 是我 完整 cal 在做非網站系統整合時,我很愛用一招:寫個 Process 提供 WebAPI 介面給其他系統呼叫,不管你用什麼烏語言鬼平臺,怎麼可能找不到 HttpCllient 元件或程式庫?都民國幾年了

從零系列npm包(一)

node key .com eve http adduser gitlab 倉庫 選擇 一、目的 主要是紀錄和回顧自己開發的一些步驟以及遇到的一些問題和解決方案 二、準備工作 1、IDE 選擇 VS Code 2、安裝node 環境 (https://nodejs.org/

從零系列node爬蟲利用進程池寫數據

存儲 exit titles date [] += port 請求 如果 1、主進程 const http = require(‘http‘); const fs = require(‘fs‘); const cheerio = require(‘cheerio‘); c

正則表示式 (?:pattern)(?=pattern)的區別

正則表示式-- (?:pattern)與(?=pattern)的區別 2018年04月20日 13:48:44 shashagcsdn 閱讀數:115 標籤: 正則表示式 非獲取匹配 更多 個人分類: 學習筆記 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://b

python--類例項繼承中變數的id是否變化

''' 注: 估計這麼亂的程式碼只有我自己能看。通過這段程式碼的驗證,證明了在類和例項的相對關係中, 把變數儲存為字串,數字,在各個類、例項之間變換的時候,變數的id是變化的, 把變數儲存為列表和字典的時候,id地址是不變的。id地址變與不變用於確認是否是同一份資料, 看一下這個變數是否是全域性

android影象處理系列之五給圖片新增邊框(中)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!