在psql中往往我們需要設置一個自增的主鍵id字段,psql中不像SQL Server那樣點選 打鈎傻瓜式就能設置好的,是需要創建序列的:CREATE SEQUENCE,關鍵字SEQUENCE。
我們先看看創建過后的結果:
(用的Navicat工具)
我們可以看到設置自增后字段默認:nextval('bid_id_seq'::regclass) ,bid為我的表名。
故可以譯為:下一個值為此表下此字段的注冊自增序列。
如何創建id自增字段?
答:建表時使用“serial”關鍵字,“PRIMARY KEY”關鍵字為設置主鍵。故設置主鍵自增id方式如下:

1 create table test_b 2 ( 3 id serial PRIMARY KEY, //主鍵並自增 4 name character varying(64) 5 );
如果表已經建好,並且表里已經有了數據,缺id自增字段?
答:先手工增加id字段,再去創建SEQUENCE序列,建立test_b_id_seq,最后設置字段開始自增的id。
如表已經建好,用下面的語句即可生成自動增長序列:

1 --先創建SEQUENCE 2 CREATE SEQUENCE test_b_id_seq 3 START WITH 1 //從1開始 4 INCREMENT BY 1 //自增空間為1 5 NO MINVALUE 6 NO MAXVALUE 7 CACHE 1; 8 9 --建立自增test_b_id_seq 10 alter table test_b alter column id set default nextval('test_b_id_seq'); 11 12 --設置字段開始自增的id 13 SELECT setval('test_b_id_seq', (SELECT MAX(id) FROM test_b)+1)
以上是在Navicat工具里操作的,當然還可以用大象客戶端pgAdmin。建議:不管用不用id字段,建表時可以加上自增id主鍵,避免后期麻煩。(傻屌網友陳二狗遇到過坑的)
最后本街帥附送一個語句,清空表數據 讓自增id從1開始:

1 TRUNCATE TABLE test_b;//清空表數據 2 ALTER SEQUENCE test_b_id_seq RESTART WITH 1;//重置自增id從1開始
以上為本帥工作中用psql遇到過的操作,歡迎評論轉載,轉載請務必留下原文地址 便於學習分享~~~