Привет, у меня эта модель данных в 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)
Теперь предположим, что если я вставлю данные в region_master с помощью orm
db.Region (region_name = "APAC") -> база данных выделяет region_master_id = 1 с помощью region_master_region_master_id_seq (это создается по умолчанию postgres, поскольку я использую autoincrement = True)
но теперь предположим, что я вставляю данные с помощью SQL-запроса, затем он пропускает последовательность (region_master_region_master_id_seq) и вставляет данные по заданному идентификатору.
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")
Здесь БД пытается выделить region_master_id = 2 и завершается неудачно с ограничениями уникального ключа.
Так есть ли способ, что ORM / databasse примет 4 в качестве следующего идентификатора.