Я хочу, чтобы мой первичный ключ модели был автоинкрементным целым. Вот как моя модель выглядит как
class Region(db.Model):
__tablename__ = 'regions'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100))
parent_id = db.Column(db.Integer, db.ForeignKey('regions.id'))
parent = db.relationship('Region', remote_side=id, primaryjoin=('Region.parent_id==Region.id'), backref='sub-regions')
created_at = db.Column(db.DateTime, default=db.func.now())
deleted_at = db.Column(db.DateTime)
Вышеприведенный код создает мою таблицу, но не делает id
автоинкремент. Поэтому, если в моем запросе на вставку я пропустил поле id
, он дал мне эту ошибку
ОШИБКА: значение null в столбце "id" нарушает непустое ограничение
Итак, я изменил объявление id
, чтобы выглядеть так:
id = db.Column(db.Integer, db.Sequence('seq_reg_id', start=1, increment=1),
primary_key=True)
По-прежнему такая же ошибка. Что не так с кодом выше?