php postgresql主键自增长,postgresql数据库自增ID

postgresql数据库自增ID

1590548924686.jpg

关注

已关注

0

1

0

352

发表于 2020-05-27 10:03:10

## postgresql 趟坑记录——建表自增

最近项目又用到了postgresql数据库,在新建表的时候发现不知道怎么id自增,网上查了资料之后发现一直在报错……

接入正题

先上个首先查到的用法

方法一:

```

create table test_a (

id serial,

name character varying(128),

constraint pk_test_a_id primary key( id)

);

```

方法二:

```

create table test_b(

id serial PRIMARY KEY,

name character varying(128)

);

```

方法三:

```

create table test_c (

id integer PRIMARY KEY,

name character varying(128)

);

再手动创建序列

CREATE SEQUENCE test_c_id_seq

START WITH 1

INCREMENT BY 1

NO MINVALUE

NO MAXVALUE

CACHE 1;

将序列赋值给主键

alter table test_c alter column id set default nextval('test_c_id_seq');

```

---

当你看完之后是什么想法?打死小编?没错,我也是这么想的,还是上我觉得直接好用的方法好了……

方法一:

```

CREATE TABLE "public"."表名" (

"id" int4 NOT NULL DEFAULT nextval('表名'::regclass),

CONSTRAINT "表名" PRIMARY KEY ("id")

)

```

然而,假如你使用了我的方法,程序却一直在报错?!

没错,因为上面的语句就是我当时犯的错……开始填坑

```

CREATE TABLE "public"."表名" (

"id" int4 NOT NULL DEFAULT nextval('"表名"'::regclass),

CONSTRAINT "表名" PRIMARY KEY ("id")

)

```

bug就在第二行语句的表名没有加双引号""!

假如你觉得上面的方法还是看不懂……,那么下面的语句就是你在寻找的

```

CREATE TABLE "public"."表名" (

"id" SERIAL PRIMARY KEY,

)

```

SERIAL 就是自增的方法名

重点在表名一定要加""号,要不postgresql不认……

好了,如果小编没有被打死,那我还会回来的

点击查看更多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值