文章内容

2018/8/6 15:48:48,作 者: 黄兵

sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062

在使用SQLAlchemy的时候报如下错误:

sqlalchemy.exc.IntegrityError

sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062, "Duplicate entry '有色金属' for key 'ix_classification_catalog_catalog_name'") [SQL: 'INSERT INTO classification_catalog (catalog_name, classification_id, catalog_since) VALUES (%s, %s, %s)'] [parameters: ('有色金属', 8, datetime.datetime(2018, 8, 6, 7, 33, 17, 389029))] (Background on this error at: http://sqlalche.me/e/gkpj)


错误原因:

数据库设置了唯一约束,但是提交的是重复数据,才会导致此问题。

看model代码:

class ClassificationCatalog(db.Model):
    __tablename__ = 'classification_catalog'
    id = db.Column(db.Integer, primary_key=True)
    catalog_name = db.Column(db.String(64), index=True,unique=True)
    classification_id = db.Column(db.Integer, db.ForeignKey('material_classification.id'))
    catalog_since = db.Column(db.DateTime, default=datetime.utcnow)

catalog_name设置了唯一约束。但是提交的时候却提交了重复数据,导致此问题。


解决方案:


修改提交数据,如果是更新,注意使用更新语句。


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062

分享到:

发表评论

评论列表