1
psycopg
와 함께 매개 변수화 된 쿼리를 사용하여 여러 행을 삭제하려고합니다. 내 스크립트 같은 삭제 문이 있습니다psycopg2.ProgrammingError : "%"또는 근처의 구문 오류
cur.executemany("WITH remove_rows as (DELETE FROM users WHERE userid = %s RETURNING *), insert_rows as (INSERT INTO old.users SELECT * FROM remove_rows RETURNING *) SELECT count(*) from insert_rows;", (id,))
을 그리고 내가 오류는 다음과 같습니다
Traceback (most recent call last):
File "removal.py", line 17, in <module>
cur.executemany("WITH remove_rows as (DELETE FROM .users WHERE userid = %s RETURNING *), insert_rows as (INSERT INTO old.users SELECT * FROM remove_rows RETURNING *) SELECT count(*) from insert_rows;", (id,))
psycopg2.ProgrammingError: syntax error at or near "%"
LINE 1: ...ws as (DELETE FROM users WHERE userid = %s RETURNI...
내가 userid = %s
에서 공백을 제거하고 userid=%s
, 내가 메시지 column "s" does not exist
과 같은 오류가 발생했습니다 만들었을 때.
psycopg2
매개 변수화가 CTE를 처리하지 않는지 궁금한가요?
'cur.executemany()'호출에 초점을 맞추었지만, CTE에 익숙하지 않아'cur.execute()'를 대신 사용한다고해도 확신 할 수 없습니다. 나는 대답을 삭제했다. –
게시 후 알게되었습니다. execute() 내 문제를 해결 :) 감사 – user1917679
좋아, 내 대답을 취소 삭제. :-) –