2016-04-26 21 views
0

Das ist mein Kern mit db-Modell für eine Benutzertabelle https://gist.github.com/flamingo0208/d888a2ca03a426a231de172599ec11b4sqlalchemy.exc.IntegrityError mit dem Namen Tupel in DB-Modell

Ich versuche, die folgenden Daten zu senden

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

einen Benutzerdatensatz zu aktualisieren aber ich bekomme

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 aus dem Namen Tupel (in Kern-Code) .Warum bin ich diesen Fehler empfangen, wenn ich gültiges Statusfeld gebe?

Antwort

0

Sie können den Primärschlüssel nicht als Aktualisierungsfeld verwenden. so schreibt Abfrage wie

session.query (Benutzer) .filter (User.id == 164) .update ({ "login_id": "abc", "accountid": "1234", "project_id": 1, "Status": "Aktiv" })

+0

Ich habe versucht, 'mit { "login_id": "abc", "accountid": "1234", "project_id": "1", "Status": "Aktiv" }' aber ich bekomme immer noch gleicher Fehler Ich denke, etwas stimmt nicht mit dem Feld "Status" – aaj

0

ok Benutzer Tabellendefinition hatte

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

Aufgrund dieser Bedingungsprüfung versagte, als ich versuchte, "Aktiv" statt „ACTIVE zu passieren ".

Verwandte Themen