最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

通過建表語句,可以看到,因為使用了serial類型,所以會創(chuàng)建一個關聯(lián)的sequece,名為aaa_id_seq。 

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

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

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

我們創(chuàng)建一個普通的int類型ID,并設置為主鍵。建表不會出現(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;

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

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

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

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

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

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

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

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

相關文章

最新評論

阳谷县| 西乌珠穆沁旗| 中超| 宜黄县| 宁强县| 乌兰浩特市| 罗城| 宁夏| 古交市| 蓝田县| 平顺县| 土默特右旗| 莱芜市| 彝良县| 旌德县| 石家庄市| 新竹市| 依安县| 漾濞| 剑川县| 新泰市| 错那县| 潜江市| 博乐市| 永春县| 西峡县| 宜昌市| 托克逊县| 库车县| 乃东县| 锡林浩特市| 乡宁县| 德安县| 海兴县| 肥西县| 吉安县| 开鲁县| 喀喇| 晋城| 昌宁县| 广丰县|