无需手动执行(如果不存在其他选项,我可以实现),PostgreSQL或MySQL中是否有一种方法可以使用减少 <的自动计数器/字段em>而不是 增量?
由于当前应用程序中的各种原因,仅仅通过查看最近添加的记录,知道还有多少条目(从数据类型的角度来看)仍然可以添加到表中,这将是一件好事,而不是从数据类型的最大值中减去最新的ID。
那么,这两个系统都有“AUTO_DECREMENT
”或类似内容吗?
答案 0 :(得分:6)
您必须在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
列创建表,然后改变自动生成的序列。
现在,如果我插入一些行,我会将example_id从5开始倒数。如果我尝试插入超过5行,我会得到nextval: reached minimum value of sequence "example_seq" (1)