2011-04-28 65 views
3

我有一個MySQL和PostgreSQL,Oracle和Firebird數據庫創建索引和非索引表中的Java編碼的測試應用(除其他事項外)。PostgreSQL沒有自動遞增功能?

難道僅僅是PostgreSQL的犯規讓自動遞增功能的情況下?如果不是,那麼建立索引顏色的正常程序是什麼?

在此先感謝

回答

6

您可以使用SERIAL PostgreSQL中生成自動增量領域,

對於如: -

CREATE TABLE user (
userid SERIAL PRIMARY KEY, 
username VARCHAR(16) UNIQUE NOT NULL 
) 

這將創建一個用戶ID爲自動增加索引的主鍵。 如果你不希望這是主鍵,只需刪除PRIMARY KEY。

+0

多數民衆贊成,謝謝你包括一個例子。 – 2011-04-28 00:32:33

3

使用類型爲SERIAL的列。它在某些其他數據庫上的工作方式與AUTOINCREMEMT相同。 (檢查文檔你可以用它使用其它功能。)

+0

三江源的! – 2011-04-28 00:32:23

3

對於當前的Postgres,您可以使用SERIAL作爲列類型。

使用早期版本的Postgres,您可以使用SEQUENCE實現此功能;相關的程序是:

CREATE SEQUENCE mytable_myid_seq; 
ALTER TABLE mytable ALTER COLUMN myid SET DEFAULT NEXTVAL('mytable_myid_seq'); 

在這方面的一個很好的文章是MySQL versus PostgreSQL: Adding an Auto-Increment Column to a Table

+0

謝謝,我第一次使用postgre :) – 2011-04-28 00:32:11

+0

只在一個會話中工作... – 2012-09-18 16:47:36