这是我对用户表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代码中)。为什么我在给出有效状态字段时收到此错误?
答案 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')
由于此约束检查失败,因为我试图传递“活动”而不是“活动”。