이 항목에 대한 여러 질문에 사과하십시오. 테이블의 다른 열을 기반으로하는 열을 업데이트하려고하는데 아무 것도 작동하지 않는 것 같습니다. 나는 updateWhere를 시도한 다음 rawSQL을 업데이트 (Ambiguous Type Error When Using RawSql Update)하지만 둘 다 문제가있다.RawSQL의 열 자동 확장 피하기
updateWave 다른 컬럼 이름 (값만)이 허용되지 않으므로 제외됩니다.
업데이트로 rawSQL을 시도했지만 업데이트를 중단시키는 모든 엔티티 이름이 자동으로 확장됩니다. ??가 열 이름을 확장하는 것을 막을 수있는 방법이 있다면 (??)이 문제를 해결하지 못하면 완벽하게 작동합니다. 예를 들어, 내가 수행 할 경우 : Update table SET X = Y - ? [input values]
은 UPDATE table.f1, table.f2, etc. SET X = Y - ? [input values]
을 만듭니다. 이는 관리자로서 백그라운드에서 실행하려는 쿼리 중 하나이므로 유형 안전을 신경 쓰지 않습니다. SQL 문자열을 맹목적으로 실행할 수있는 방법이 있다면 잘 작동합니다.
내가 원하는 것은 : SET X = (Y - Constant). 어떤 제안이라도 대단히 감사하겠습니다.
고마워요!
감사합니다. 그것은 rawExecute와 잘 작동하고 통화가 끝날 때 형식 서명을 제거했습니다. 나는이 문제를 새로운 Yesod 프로젝트로 재현 할 수 있었으므로보고 할 것입니다. – Ecognium
문제를 신고 : https://github.com/yesodweb/yesod/issues/582 – Ecognium