PostgreSQL如何设置自增主键ID

首发.png

使用navicat创建postgresql数据库的表时如何设定主键自增?

我们知道,在navicat中MySQL 里面有auto_increment 自增字段PostgreSQL
没有自增字段这一说法,但是有单独的对象:序列。 可以用序列或者其他方法来是实现这样的语法。或者设置某一列的默认值为sequence的值即可

在MySQL当中,我们可以通过勾选来实现ID自增,我们的navcat如下图所示:
  `area_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
image
在PostgreSQL当中,我们的navcat如下图所示
image

在PostgreSQL当中,我们实现ID自增首先创建一个关联序列序列

打开navcat查询列表,去创建一个序列

CREATE SEQUENCE upms_log_id_seq START 10;

image.gif

然后在字段默认值里设 nextval(' upms_log_id_seq')即可。

image

实际生成自增主键表结构

"area_id" int4 NOT NULL DEFAULT nextval('upms_area_id_seq'::regclass),
image

)

PostgreSQL主要优势:

  • PostgreSQL完全免费,而且是BSD协议,如果你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSQL数据库不会被其它公司控制。oracle数据库不用说了,是商业数据库,不开放。而MySQL数据库虽然是开源的,但现在随着SUN被oracle公司收购,现在基本上被oracle公司控制,其实在SUN被收购之前,MySQL中最重要的InnoDB引擎也是被oracle公司控制的,而在MySQL中很多重要的数据都是放在InnoDB引擎中的,反正我们公司都是这样的。所以如果MySQL的市场范围与oracle数据库的市场范围冲突时,oracle公司必定会牺牲MySQL,这是毫无疑问的。

  • 与PostgreSQl配合的开源软件很多,有很多分布式集群软件,如pgpool、pgcluster、slony、plploxy等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这在MySQL下则比较困难。

  • PostgreSQL源代码写的很清晰,易读性比MySQL强太多了,怀疑MySQL的源代码被混淆过。所以很多公司都是基本PostgreSQL做二次开发的。

  • PostgreSQL在很多方面都比MySQL强,如复杂SQL的执行、存储过程、触发器、索引。同时PostgreSQL是多进程的,而MySQL是线程的,虽然并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL的总体处理性能不如PostgreSQL,原因是MySQL的线程无法充分利用CPU的能力。


    1.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,016评论 2 89
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 816评论 0 3
  • 今天画了两幅竹。 还不会用笔,不会调墨。坚持就会有收获。 乙瑛碑第四天 昨天那几只鱼呢?
    陌上花开一水间阅读 474评论 4 12
  • 最近重新认真的回顾了周星驰的几部老电影,感触很多!以前是看喜剧,现在是看励志!以前人家笑,你也跟着笑!现在人家笑的...
    游子林阅读 410评论 5 0
  • 作者:大望路女司机 录制:风云 小说类型:都市悬疑 故事简介: 北京深夜,一声陌生女人刺耳的尖叫声打破了天通苑老七...
    麦豆声音工作室阅读 606评论 0 0