设置字段为自增类型

方法一:创建表时,给直接使用serial类型

自增类型 别名
smallserial serial2
serial serial4
bigserial serial8
方法二:表创建了,字段类型是int类型,此时也可以设置该字段为自增类型

如表 public.test 字段类型如下:

字段 类型

id  bigint primary key
name    varchar(10)

第一步:创建一个自增序列

 create sequence public.test_id_seq increment by 1 minvalue 1 no maxvalue start with 1;

第二步:将public.test 的字段id设置默认值为该序列

 alter table public.test alter column id set default nextval('public.test_id_seq');

第三步:如果表中已有多条记录,继续插入数值且防止id不冲突

查看id的最大值
select max(id) from public.test; #例如返回 4

查看新建序列的下一个值
select nextval('public.test_id_seq'::regclass); #例如返回2

此时不带id插入记录肯定会插入失败,id冲突,设置id下一个值为最大值+1
方法1:
select setval('public.test_id_seq'::regclass,5, false);

方法2:
alter sequence crm.crm_user_temp_id_seq restart with 5

方法3:
可以创建序列时,先获取id的最大值,之后将该序列的起始值置为max(id)+1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值