【postgresql菜鸟教程】postgreSQL自动递增主键创方法

更新时间:2019-04-20    来源:PostgreSQL    手机版     字体:

【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");

本文来源:http://www.bbyears.com/shujuku/49576.html

热门标签

更多>>

本类排行