【www.bbyears.com--PostgreSQL】
自动递增在postresql中只要把字段类型设置为serial就可以了。
比如
代码如下CREATE TABLE st_cat
(
id serial NOT NULL,
parentid integer, — 父id
catname character varying(20), — 分类名称
memo character varying(500), — 备注
issub integer — 是否有子分类
)
WITH (
OIDS=FALSE
);
ALTER TABLE st_cat
OWNER TO postgres;
COMMENT ON COLUMN st_cat.parentid IS ‘父id’;
COMMENT ON COLUMN st_cat.catname IS ‘分类名称’;
COMMENT ON COLUMN st_cat.memo IS ‘备注’;
COMMENT ON COLUMN st_cat.issub IS ‘是否有子分类’;
在网上看到类似的代码,就奇怪
nextval("test_a_id_seq"::regclass)
这个是从哪里来的,
后来在pgAdmin里面找到了,是在相应的表的字段,会出现
代码如下ALTER TABLE test_a ADD COLUMN id integer;
ALTER TABLE test_a ALTER COLUMN id SET NOT NULL;
ALTER TABLE test_a ALTER COLUMN id SET DEFAULT nextval("test_a_id_seq"::regclass);
使用最后的那个就好了。
这样就可以随心所欲的插入数据了。
Java代码里面,sqlSession.commit();操作是不可少的,要不然看不到结果。
你还可以用每行的 oid 字段作为一个唯一值。不过,如果你需要倾倒和重载数据库,你需要使用 pg_dump 的 -o 选项或者 COPY WITH OIDS 选项以保留 OID。
代码如下insert into person values(nextval("person_id_req"),"yourname");