美文网首页Java技术分享Java 杂谈我爱编程
PostgreSQL如何设置自增主键ID

PostgreSQL如何设置自增主键ID

作者: 墨迹嘿嘿 | 来源:发表于2019-01-21 22:06 被阅读36次

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

    相关文章

      网友评论

        本文标题:PostgreSQL如何设置自增主键ID

        本文链接:https://www.haomeiwen.com/subject/vrahjqtx.html