用什么办法可以让postgresql里的int属性的字段自增加?

用什么办法可以让postgresql里的int属性的字段自增加?

用什么办法可以让postgresql里的int属性的字段自增加,就像在mysql中在int属性后加上 auto_increment就可实现自增加的目的?
在postgresql里我没有找到类似的可以让int属性的字段自增加的方法,不知到有没有其他的方法可以解决这个问题。      
如何韵定自????呃?的?铨?常被提起,而自???催?有很多地方用得到,以下?介铰PostgreSQL如何??理自???的做法,PostgreSQL在自???上有多肺?理方式,但是回?到基本原理,就只有一肺,所以只要您能了解呃?原理,要去?化自???就非常容易。

CREATE SEQUENCE "seq";

上面的指令,?肴上PostgreSQL是建立了一剐系靳??,你可以?行 select * from seq ?得到如下的表格,?呃彦您可以看到目前呃?序??生??的明?:

序?名费 尾? 累加值 最大值 最小值 cache值 log_cnt 自?重? is_called
sequence_name last_value increment_by max_value min_value cache_value log_cnt is_cycled is_called
seq 1519711 1 2147483647 1 1 32 f t

上面呃?表格您可以?psql工具?得到,整剐??????呃?序?的??,要如何??用呃?序?呢?你可以使用 select nextval('seq') 得到一?新的序?,呃?新?瘁?照上面的???看是?「尾?」累加而?,所以nextval()呃?函?是去?找序????且依照?序????得到一?新?瘁的函?,?呃一?可以看得出?
+---------+
| nextval |
+---------+
| 1519712 |
+---------+

再?就是直接?用在您儋料表格中的?位,透咿上面的哕用,呃彦的?例就是代表?表格新增?,trn_no呃??位??自?累加一?新序?。
CREATE TABLE "invosub" (
"trn_no" int4 DEFAULT nextval('seq'),
"item_no" char(20) NOT NULL,
"qty" float8 default 0,
"price" float8 default 0,
"amount" float8 default 0
);


其??用在上面的?例中,PostgreSQL?有提供一肺??的做法,不咿呃只是做法??,其?真正的哕作原理,?是如上面所述,?例如下:
CREATE TABLE "invosub" (
"trn_no" serial,
"item_no" char(20) NOT NULL,
"qty" float8 default 0,
"price" float8 default 0,
"amount" float8 default 0
);


PostgreSQL?部?肴做法:

在建立呃?Table?,一?建立一?序???(invosub_trn_no_seq)
?trn_no建立格式改成 "trn_no" int4 DEFAULT nextval('seq'),就如同上面的一?
建立一? unique 索引 create unique index invosub_trn_no_key on invosub (trn_no)
有了上面的解真,您??可以蒉?清楚的知道PostgreSQL?理序?的方法,呃彦有一?要特?注意,序???本身?不?自??除,如果您使用最後一肺方法?建立表格(含序?),PostgreSQL自??生一?序???,而呃????不因?表格?除?而一?被?除,有些人?帐?呃?的做法比蒉麻?,但呃??立?理有晷序?的方法,其?比起?序??嵌於某一?表格?要好上杂多,不管是在?理速度及往後的?性方面都是蒉理想的方式。

暂:有晷序?建立?有一些??可以韵定,?自行?考官方手?真明      
最好不要用serial,还是sequence好,灵活呀~~~