当前位置: 首页 > postgresql > 正文

postgresql表中的自增列创建方式

受mysql使用习惯的影响,在使用postgresql的时候,可能非常希望有一个AUTO_INCREMENT字段。。

postgresql官方给出了下面的解决方式:

CREATE TABLE person (
    id SERIAL,
    name TEXT
);

在内部,其实是这样做的:

CREATE SEQUENCE person_id_seq;
CREATE TABLE person (
    id INTEGER NOT NULL DEFAULT nextval('person_id_seq'),
    name TEXT
);

自动创建了一个序列,命名位 表明_字段名_seq, 然后将需要子增列的值和这个序列关联起来

除此之外,对于某些可能记录数很大的表,postgresql提供了BIGSERIAL类型,序列的值由int变成了bigint。

注意:由于序列可能被其他的操作使用,所以,含有子增字段的表中的自增值可能会出现(hole),即自增的内容可能是不连续的;这确实比较悲剧,不过话说回来,既然选择自增列,无非是想有一个唯一的值,而对于值的内容可能就不怎么关心了

 

    分享到:

本文固定链接: http://klwang.info/pgsql-auto-increment-column/ | 数据库|Linux|软件开发

该日志由 klwang 于2013年03月12日发表在 postgresql 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: postgresql表中的自增列创建方式 | 数据库|Linux|软件开发
关键字: ,

postgresql表中的自增列创建方式:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter