sqlalchemy.exc.IntegrityError在数据库模型中具有命名元组

时间:2016-04-26 09:01:11

标签: python sqlalchemy

这是我对用户表https://gist.github.com/flamingo0208/d888a2ca03a426a231de172599ec11b4

的db模型的要点

我正在尝试发送以下数据来更新用户记录

{
"id":164,
"login_id": "abc",
"accountid": "1234",
"project_id": "1",
"status":"Active"
}

但是我得到了

sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (sqlite3.IntegrityError) constraint status_type failed [SQL: 'UPDATE users SET status=?, project_id=? WHERE users.id = ?'] [parameters: ('Inactive', '1', 164)

status_type来自命名元组(在gist代码中)。为什么我在给出有效状态字段时收到此错误?

2 个答案:

答案 0 :(得分:0)

您不能将主键作为更新字段。所以写一下像

这样的查询

session.query(Users).filter(User.id == 164).update({" login_id":" abc", " accountid":" 1234", " project_id":1, "状态":"主动" })

答案 1 :(得分:0)

确定我的用户表定义

CONSTRAINT status_type CHECK (status IN ('ACTIVE', 'DISABLED')

由于此约束检查失败,因为我试图传递“活动”而不是“活动”。