>source

먼저 레code를 업데이트한 다음 반환하려면 PostgreSQL에서 쿼리를 실행해야 합니다. 쿼리는 다음과 같습니다.

WITH x AS (
  SELECT "ID" FROM JOB WHERE "STATE"= 1 LIMIT 1
)
UPDATE JOB y SET "STATE"= 2 FROM x WHERE x."ID"= y."ID"
RETURNING y.*

PostgreSQL 서버 자체에서는 잘 작동합니다. 그러나 pyodbc를 사용하여 Python에서 실행하면 작동하지 않습니다.

cursor.execute(query)
results= cursor.fetchall()

"결과가 없습니다. 이전 SQL은 쿼리가 아닙니다."라고 표시됩니다.

postgresql 및 python을 사용하는 경우 psycopg2(또는 psycopg2-binary)를 권장합니다. pyodbc를 사용하는 경우 사용 중인 드라이버를 표시해야 한다고 생각합니다(또는 최소한 Sybase 데이터 베이스)

Alex Turner2022-02-06 08:12:13
  • 답변 # 1

    cursor.execute가 여러 명령문을 처리할 수 없는 것 같습니다...

    쿼리를 다시 작성하여 한 번에 하나씩 수행하거나 다음으로 분할해 보십시오.

    https://stackoverflow.com/a/38857840

    퍼팅 링크는 눈살을 찌푸리게 합니다. 여기에서 가장 관련성이 높은 부분을 인용하십시오. 또한 기능이 그대로 유지되도록 분할하려면 어떻게 해야 합니까?

    Hamed2022-02-06 08:12:13
  • 이전 디버그 및 릴리스 앱 버전 간의 C++Builder TFileStream 호환성
  • 다음 String을 java.lang.reflect.Type으로 구문 분석하는 방법은 무엇입니까?