我有一個MySQL和PostgreSQL,Oracle和Firebird數據庫創建索引和非索引表中的Java編碼的測試應用(除其他事項外)。PostgreSQL沒有自動遞增功能?
難道僅僅是PostgreSQL的犯規讓自動遞增功能的情況下?如果不是,那麼建立索引顏色的正常程序是什麼?
在此先感謝
我有一個MySQL和PostgreSQL,Oracle和Firebird數據庫創建索引和非索引表中的Java編碼的測試應用(除其他事項外)。PostgreSQL沒有自動遞增功能?
難道僅僅是PostgreSQL的犯規讓自動遞增功能的情況下?如果不是,那麼建立索引顏色的正常程序是什麼?
在此先感謝
您可以使用SERIAL
PostgreSQL中生成自動增量領域,
對於如: -
CREATE TABLE user (
userid SERIAL PRIMARY KEY,
username VARCHAR(16) UNIQUE NOT NULL
)
這將創建一個用戶ID爲自動增加索引的主鍵。 如果你不希望這是主鍵,只需刪除PRIMARY KEY。
使用類型爲SERIAL
的列。它在某些其他數據庫上的工作方式與AUTOINCREMEMT
相同。 (檢查文檔你可以用它使用其它功能。)
三江源的! – 2011-04-28 00:32:23
對於當前的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
謝謝,我第一次使用postgre :) – 2011-04-28 00:32:11
只在一個會話中工作... – 2012-09-18 16:47:36
多數民衆贊成,謝謝你包括一個例子。 – 2011-04-28 00:32:33