在不需要手动操作的情况下(如果没有其他选项,我也可以实现手动操作),在PostgreSQL或MySQL中是否有一种自动计数器/字段的方式可以减量而不是增量?
出于各种原因,在当前应用程序中,通过查看最近添加的记录,知道表中还可以添加多少条目(从数据类型的角度来看)将是很好的事情,而不是从最大值中减去最近的ID。
所以,这两个系统中是否有"AUTO_DECREMENT
"或类似的东西呢?
在不需要手动操作的情况下(如果没有其他选项,我也可以实现手动操作),在PostgreSQL或MySQL中是否有一种自动计数器/字段的方式可以减量而不是增量?
出于各种原因,在当前应用程序中,通过查看最近添加的记录,知道表中还可以添加多少条目(从数据类型的角度来看)将是很好的事情,而不是从最大值中减去最近的ID。
所以,这两个系统中是否有"AUTO_DECREMENT
"或类似的东西呢?
在PostgreSQL中,您需要进行一些手动配置,但是您可以像这样配置序列:
create sequence example_seq
increment by -1
minvalue 1
maxvalue 5
start with 5;
create table example(
example_id int primary key default nextval('example_seq'),
data text not null
);
alter sequence example_seq owned by example.example_id;
我想创建一个带有serial
列的表,然后修改自动生成的序列应该是等效的。
现在如果我插入一些行,我会得到从5开始递减的example_id。如果我尝试插入超过5行,则会出现nextval: reached minimum value of sequence "example_seq" (1)
。