开发者

PostgreSQL No Auto Increment function?

I have a test application coded in Java for creating an indexed and non indexed table in a MySQL, PostgreSQL, Oracle and Firebird database (Amongst other things).

Is it simply a case that PostgreSQL doesnt allow the auto increment feature? If not, what is th开发者_运维百科e normal procedure for having an indexed coloumn?

Thanks in advance


You may use SERIAL in PostgreSQL to generate auto increment field,

For eg:-

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

This will create userid as auto-increment primary key indexed. If you don't want this as primary key, just remove PRIMARY KEY.


Use a column of type SERIAL. It works the same way as AUTOINCREMEMT on some other DBs. (Check the docs for other features you can use with it.)


With current Postgres, you can just use SERIAL for the column type.

With older versions of Postgres, you can implement this using SEQUENCE; the relevant procedure is:

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

A good article on this is MySQL versus PostgreSQL: Adding an Auto-Increment Column to a Table

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜