我有一个用Java编码的测试应用程序,用于在MySQL,PostgreSQL,Oracle和Firebird数据库中创建索引和非索引表(除此之外)。
仅仅是PostgreSQL不允许自动增量功能的情况吗?如果没有,索引coloumn的正常程序是什么?
提前致谢
答案 0 :(得分:6)
您可以在PostgreSQL中使用SERIAL
来生成自动增量字段
例如: -
CREATE TABLE user (
userid SERIAL PRIMARY KEY,
username VARCHAR(16) UNIQUE NOT NULL
)
这将创建userid作为索引的自动增量主键。 如果您不希望将其作为主键,只需删除PRIMARY KEY。
答案 1 :(得分:3)
使用SERIAL
类型的列。它的工作方式与AUTOINCREMEMT
在其他一些数据库上的工作方式相同。 (查看文档以了解可以使用的其他功能。)
答案 2 :(得分: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