2016-08-27 2 views
0

id == 3user 테이블의 email 열을 업데이트하려고합니다. 아래 코드는 행을 업데이트하지 않으며 오류를 발생시키지 않습니다. 문제는 어디에있을 수 있습니까?SQLAlchemy 업데이트가 작동하지 않거나 오류가 발생합니다.

from sqlalchemy import update 
@app.route('/testupdate/') 
def testupdate(): 
    stmt = update(user).where(user.id==3).values(email='[email protected]') 
    db.session.commit() 
    return 'done' 
+0

시도하십시오 - session.query (User). 필터 (User.id == 3) .update ({ "email": "a @ b"}) – SumanKalyan

+0

이 오류가 발생했습니다 :'AttributeError : 'NullSession'객체에 'query'' 속성이 없습니다. – Andishe

답변

0

문제는 데이터베이스에 SQL이 생성되지 않았기 때문입니다.

stmt = update(user).where(user.id==3).values(email='[email protected]') 

실제로 명령문을 실행하지 않고 작성합니다. 실제로 실행하려면

db.session.execute(stmt) 

으로 전달한 다음 커밋해야합니다. 당신이 세션에서 영향을받는 경우가 있는지 여부에 따라 당신이 전혀 동기화하지 않도록 선택할 수에 나중에 사용하게 될

db.session.query(user).\ 
     filter_by(id=3).\ 
     update({user.email: '[email protected]'}, 
       synchronize_session='evaluate') 

참고 : 당신은 또한 대신 세션의 Query API를 사용할 수 False.

+0

작동하지 않습니다. – Andishe

+0

오류가 있다면 무엇입니까? –

+0

아무런 오류없이 변경된 사항이 없습니다. – Andishe

관련 문제