2012-02-12 3 views
2

난 SQLAlchemy 코어만을 사용하고 where 절을 추가 할 수 있도록 sql을 얻을 수 없다. 모든 테이블에서이 매우 일반적인 업데이트 코드를 사용하고 싶습니다. 이것은 모든 테이블에 해당하는 일반 삽입/업데이트 함수의 일부입니다. 이 방법을 사용하면 극히 간단한 테스트 코드와 각 테이블에 대해 별도의 하위 명령을 사용하지 않고도 모든 args & 옵션을 전달할 수있는 간단한 CLI 유틸리티를 사용할 수 있습니다.SQLAlchemy에서 생성 업데이트를 작성하는 방법

거기서 얻으려면 약간의 조정이 필요 하겠지만 지금은 업데이트를 잘 수행해야합니다. 그러나 SQLAlchemy는 생성 쿼리를 참조하지만 이는 & 업데이트를 구분하지 않습니다. SQLAlchemy 문서, Essential SQLAlchemy, stackoverflow 및 여러 소스 코드 저장소를 검토 한 결과 아무 것도 발견하지 못했습니다.

UPDATE struct SET year=?, month=?, day=?, distance=?, speed=?, slope=?, temp=? 
FAIL 

내가 이런 식으로 업데이 트를 구축의 예를 찾을 수 없습니다 : where 절을 인식하지 않는 것 - 실패

u  = self._table.update() 
non_key_kw = {} 
for column in self._table.c: 
    if column.name in self._table.primary_key: 
     u.where(self._table.c[column.name] == kw[column.name]) 
    else: 
     col_name = column.name 
     non_key_kw[column.name] = kw[column.name] 

print u 
result = u.execute(kw) 

. 어떤 추천?

답변

1

"where()"메서드는 새로운 Update() 개체를 반환한다는 점에서 생성됩니다. 이전 버전은 수정되지 않았습니다.

u = u.where(...) 
+0

감사합니다. 나는 좋은 도구의 버그보다는 내 부분에서 어리석은 실수 였기 때문에 기쁩니다. :-) –

관련 문제