欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

postgresql數(shù)據(jù)庫表ID自增的實(shí)現(xiàn)代碼

 更新時間:2023年12月28日 11:47:54   作者:luffy5459  
postgresql數(shù)據(jù)庫可以創(chuàng)建主鍵,但是沒有像mysql那樣直接指定主鍵自增的auto_increment關(guān)鍵字,因此如果在postgresql中創(chuàng)建表指定主鍵自增使用auto_increment會報錯,本文通過一個實(shí)例給大家演示自增ID的實(shí)現(xiàn),需要的朋友可以參考下

postgresql數(shù)據(jù)庫可以創(chuàng)建主鍵,但是沒有像mysql那樣直接指定主鍵自增的auto_increment關(guān)鍵字,因此如果在postgresql中創(chuàng)建表指定主鍵自增使用auto_increment會報錯。那么如何實(shí)現(xiàn)主鍵自增,postgresql通過序列來實(shí)現(xiàn)。序列可以實(shí)現(xiàn)自動增長,而且表字段可以指定默認(rèn)值,因此可以通過指定默認(rèn)值的方式來實(shí)現(xiàn)主鍵自增。

postgresql提供了三種serial類型:smallserial,serial,bigserial,他不是真正的類型,而是在創(chuàng)建唯一標(biāo)識符列的標(biāo)志以方便使用。bigserial會創(chuàng)建一個bigint類型的自增,serial用以創(chuàng)建一個int類型的自增,依次類推。

下面通過實(shí)例演示自增ID的實(shí)現(xiàn):

通過建表語句,可以看到,因?yàn)槭褂昧藄erial類型,所以會創(chuàng)建一個關(guān)聯(lián)的sequece,名為aaa_id_seq。 

接著查看表結(jié)構(gòu),并向表中插入數(shù)據(jù):

表aaa實(shí)現(xiàn)了id自增功能,表的id默認(rèn)值是nextval('aaa_id_seq'::regclass)。

按照這個思路,我們可以這么來干,一般的主鍵表,沒有使用serial類型,那么我們可以通過創(chuàng)建序列,并修改表ID默認(rèn)值字段,指定默認(rèn)值字段為序列的nextval。

我們創(chuàng)建一個普通的int類型ID,并設(shè)置為主鍵。建表不會出現(xiàn)創(chuàng)建序列的notice內(nèi)容。

這個表的插入,如果不指定id,那么就會出現(xiàn)錯誤:

接著我們創(chuàng)建一個序列:

create sequence bbb_id_seq start with 1 increment by 1 no minvalue no maxvalue cache 1;

設(shè)置表bbb的ID字段的默認(rèn)值為nextval(bbb_id_seq)

alter table bbb alter column id set default nextval('bbb_id_seq');

再次向bbb中插入記錄,這次不用關(guān)心ID字段了。 

通過查看表結(jié)構(gòu),看看兩種方式產(chǎn)生的表:

postgresql查找索引的方法也是和mysql不一樣,postgresql查看索引的語法是:select * from pg_indexes where tablename='bbb';或者select * from pg_statio_all_indexes where relname='bbb';

可以看到,postgresql默認(rèn)索引也是通過btree來創(chuàng)建的。 

最后再補(bǔ)充一點(diǎn)內(nèi)容,查看序列和查看表結(jié)構(gòu)是一樣的,都是使用\d來查看,比如\d aaa_id_seq。

以上就是postgresql數(shù)據(jù)庫表ID自增的實(shí)現(xiàn)代碼的詳細(xì)內(nèi)容,更多關(guān)于postgresql數(shù)據(jù)庫表ID自增的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PostgreSQL時間處理的一些常用方式總結(jié)

    PostgreSQL時間處理的一些常用方式總結(jié)

    PostgreSQL提供了許多返回當(dāng)前日期和時間的函數(shù),下面這篇文章主要給大家介紹了關(guān)于PostgreSQL時間處理的一些常用方式,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • navicat連接postgresql、人大金倉等數(shù)據(jù)庫報錯解決辦法

    navicat連接postgresql、人大金倉等數(shù)據(jù)庫報錯解決辦法

    在使用Navicat操作數(shù)據(jù)庫時,遇到數(shù)據(jù)報錯是一個常見的問題,這類問題可能涉及多個方面,下面這篇文章主要給大家介紹了關(guān)于navicat連接postgresql、人大金倉等數(shù)據(jù)庫報錯的解決辦法,需要的朋友可以參考下
    2024-08-08
  • postgresql 刪除重復(fù)數(shù)據(jù)的幾種方法小結(jié)

    postgresql 刪除重復(fù)數(shù)據(jù)的幾種方法小結(jié)

    這篇文章主要介紹了postgresql 刪除重復(fù)數(shù)據(jù)的幾種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 詳解如何在PostgreSQL中使用JSON數(shù)據(jù)類型

    詳解如何在PostgreSQL中使用JSON數(shù)據(jù)類型

    JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它采用鍵值對的形式來表示數(shù)據(jù),支持多種數(shù)據(jù)類型,本文給大家介紹了如何在PostgreSQL中使用JSON數(shù)據(jù)類型,需要的朋友可以參考下
    2024-03-03
  • 淺談PostgreSQL中大小寫不敏感問題

    淺談PostgreSQL中大小寫不敏感問題

    這篇文章主要介紹了淺談PostgreSQL中大小寫不敏感問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 基于postgresql數(shù)據(jù)庫鎖表問題的解決

    基于postgresql數(shù)據(jù)庫鎖表問題的解決

    這篇文章主要介紹了基于postgresql數(shù)據(jù)庫鎖表問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 關(guān)于PostgreSQL截取某個字段中的部分內(nèi)容進(jìn)行排序的問題

    關(guān)于PostgreSQL截取某個字段中的部分內(nèi)容進(jìn)行排序的問題

    這篇文章主要介紹了PostgreSQL截取某個字段中的部分內(nèi)容進(jìn)行排序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法

    Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法

    這篇文章主要介紹了Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • PostgreSQL 定義返回表函數(shù)的操作

    PostgreSQL 定義返回表函數(shù)的操作

    這篇文章主要介紹了PostgreSQL 定義返回表函數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL基礎(chǔ)知識之SQL操作符實(shí)踐指南

    PostgreSQL基礎(chǔ)知識之SQL操作符實(shí)踐指南

    這篇文章主要給大家介紹了關(guān)于PostgreSQL基礎(chǔ)知識之SQL操作符實(shí)踐的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PostgreSQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評論