SQLAlchemy:唯一约束失败错误,但没有唯一约束

2024-10-02 22:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Flask和SQLAlchemy和SQLite来创建一个应用程序,它可以跟踪你的食品储藏室中的物品以及你喜欢制作的食谱。在

我在这件事上左右为难。我有一个表,其中记录应该可以有重复的字段。每次我试图在我的应用程序中为这个表创建一个数据库条目时,就会引发一个“IntegrityError:UNIQUE constraint failed”。这很令人费解,因为它在上引发的列没有显式设置唯一约束。在

下面是我要插入的表的模型:

class PantryItem(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))
    amount = db.Column(db.String(12))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<PantryItem %r> % self.name'

以下是应添加到数据库的条目的视图代码:

^{pr2}$

下面是我在提交表格时遇到的错误:

IntegrityError: (IntegrityError) UNIQUE constraint failed: pantry_item.name u'INSERT INTO pantry_item (name, amount, user_id) VALUES (?,  ?, ?)' (u'Milk', u'2 cups', 1)

表中已经有一个名为“Milk”的PantryItem的记录。在

假设PantryItem的主键“id”可以将一个记录与另一个具有相同名称/金额/所有者的记录区分开来,这是否有误?还是我完全忽略了什么?在

提前谢谢你的帮助。在


Tags: nameid数据库应用程序dbstring记录column