SQLAlchemy (python)에서 필터 쿼리를 실행하려고하는데 열 이름에 대소 문자가 구분되는 문제가 있습니다.SQLAlchemy 필터에서 대소 문자를 구분하는 열 이름을 따옴표로 묶습니다.
Base = declarative_base()
engine = create_engine('postgresql://user:[email protected]:5432/database')
metadata = MetaData(bind=engine)
class MyTable(Base):
__table__ = Table('my_table', metadata, autoload=True, quote=True)
을 그리고 여기 필터 쿼리를 실행하고 방법은 다음과 같습니다 :
모델 클래스
은과 같이 스키마에서 자동 생성이이 오류가 발생val = 1
result = session.query(MyTable).filter("myCaseSensitiveAttribute=:myCaseSensitiveAttribute").params(myCaseSensitiveAttribute=val).all()
:
를sqlalchemy.exc.ProgrammingError: (ProgrammingError) column "mycasesensitiveattribute" does not exist LINE 3: WHERE myCaseSensitiveAttribute=1
다른 모든 것은 대소 문자를 구분합니다. 이 문제를 일으키는 것은 필터뿐입니다. 모델 클래스 (이 경우 실용적이지 않음) 또는 변수 값을 기반으로 결과 집합을 필터링하는 다른 작업 방법에서 각 속성을 명시 적으로 정의하지 않고도 열 이름을 인용하도록 강제 할 수 있습니까?
시간 내 주셔서 감사합니다.
대단히 감사합니다! – drkstr1