您好我在ORM中拥有此数据模型。
class Region(db.Model):
__tablename__ = 'region_master'
region_master_id = db.Column(
db.Integer,
primary_key=True,
autoincrement=True
)
region_name = db.Column(db.Text)
现在假设我是否通过orm
在region_master中插入数据db.Region(region_name =“APAC”) - >数据库使用region_master_region_master_id_seq分配region_master_id = 1(默认情况下由postgres创建,因为我使用autoincrement = True)
但是现在假设我使用sql查询插入数据然后它跳过序列(region_master_region_master_id_seq)并按给定的id插入数据。
INSERT INTO public.region_master (region_master_id, region_name) VALUES (2, N'Europe');
INSERT INTO public.region_master (region_master_id, region_name) VALUES (3, N'USA');
现在序列返回1作为last_value:
select last_value from region_master_seq
现在,如果我使用ORM插入,我会得到唯一的键约束错误。
dm.Region(region_name="EMEA")
此处DB尝试分配region_master_id = 2,并且它以唯一键约束失败。
那么ORM /数据库是否有任何方式将4作为下一个id。