postgre 没有主键自增ma_postgresql-创建主键自增的表

本文探讨了MySQL和PostgreSQL在主键自增方面的区别,指出MySQL在Navicat中可直接指定主键自增,而PostgreSQL不支持客户端指定。介绍了三种在PostgreSQL中实现主键自增的方法,包括使用serial类型和手动创建序列。在删除表时,不同方法对序列的影响也有所不同。
摘要由CSDN通过智能技术生成

之前一直用的mysql,这个也基本上是主流,主键自增是很多建表规范中的硬性要求,不过这两种数据库主键自增的区别还是很大的

通常navicat中对mysql 主键自增直接客户端指定即可,不过对PG貌似不支持客户端指定,所以需要执行一下sql

如果尚未创建表,可用如下方法

方法一:

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)

);

这两种方法用的是pg的serial类型实现自增,drop表的时候指定的序列也会drop掉

方法三:先创建主键表

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');

这种方法在drop表的时候序列不会随着drop掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值