文章内容
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
TypeError: filter() got an unexpected keyword argument 'classification_id'
一张「惨不忍听」的专辑,慢慢烂出了境界,烂成了经典
一张「惨不忍听」的专辑,慢慢烂出了境界,烂成了经典
评论列表