1. 程式人生 > >Postgresql中新建表的時候,如何使用主鍵使用序列(sequence)的值進行自增長

Postgresql中新建表的時候,如何使用主鍵使用序列(sequence)的值進行自增長

我們知道,一般的資料庫中都有序列,可以使用它對主鍵進行自增長,hbm框架都是如此(比如,Hibernate)。那麼,在不使用hbm框架的情況下,如何使主鍵進行自增長呢。其實,很簡單,只需要在建表的時候給主鍵加一個預設值即可,下面以postgresql資料庫為例,給出一個簡單的說明(其他資料庫的語法也許跟這個不一樣):

[SQL] view plain copy id integer NOT NULL DEFAULT nextval('personid_seq'::regclass)     

 上面的"nextval('personid_seq'::regclass"部分就是關鍵,其中,personid_seq 就是一個序列,可以通過下面的語句進行宣告:

[SQL] view plain copy CREATE SEQUENCE personid_seq     INCREMENT 1     MINVALUE 1     MAXVALUE 9223372036854775807     START 1     CACHE 5;    

這樣一來,在往資料庫插入記錄的時候,就不必給id欄位進行手動賦值了。

PS:需要注意的事,你在insert into的時候,需要指明欄位,不然會報錯的。比如,test表中共有id與name兩個欄位,其中,id使用如上方式進行了自增長,那麼你在插入記錄的時候,需要像下面這麼來寫SQL語句:

[SQL] view plain copy insert into test(name) values('tiger');    而不能寫成下面這種的:

[SQL] view plain copy insert into test values('tiger');   ---------------------  作者:rainbow702  來源:CSDN  原文:https://blog.csdn.net/rainbow702/article/details/50516791?utm_source=copy  版權宣告:本文為博主原創文章,轉載請附上博文連結!