PostgreSQL如何设置自增主键ID

使用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

然后在字段默认值里设 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的能力。

作者:摘星族
链接:https://www.jianshu.com/p/9687c9e66cec
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 使用navicat创建postgresql数据库的表时如何设定主键自增? 我们知道,在navicat中MySQL ...
    墨迹嘿嘿阅读 46,115评论 1 12
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 11,036评论 0 9
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,406评论 5 115
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 4,310评论 0 3
  • 透视一本书 要点: 1. 如何理解“透视”每一本书的封面之下都有一套自己的骨架。而“透视” 则是要你用一双X光般的...
    杨慧莉阅读 1,607评论 0 0

友情链接更多精彩内容