Postgres: "where in (list)" - 잘못된 열 참조
SQL Server에서 다음 쿼리는 Postgres에서 행을 성공적으로 삭제합니다. user_job_titles 테이블은 ID 목록을 기반으로 합니다.
DELETE FROM user_job_titles WHERE id IN ( "c836d018-1d12-4507-a268-a4d80d6d3f54", "d0961a90-7d31-4c4c-9c1b-671115e3d833", "62dda420-6e62-4017-b41d-205c0aa82ead" )
그러나 Postgres에서 이 쿼리를 실행하면 오류가 발생합니다.
ERROR: column "c836d018-1d12-4507-a268-a4d80d6d3f54" does not exist
원인:
문제는 IN 절의 ID 값 주위에 큰따옴표를 사용하는 데 있습니다. . Postgres에서는 큰따옴표가 테이블 및 열 이름의 이스케이프 문자로 예약되어 있습니다. ID 주위에 이를 사용하면 Postgres는 이를 존재하지 않는 열에 대한 참조로 해석하여 오류가 발생합니다.
해결책:
이 문제를 해결하려면 큰따옴표와 작은따옴표:
DELETE FROM user_job_titles WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54', 'd0961a90-7d31-4c4c-9c1b-671115e3d833', '62dda420-6e62-4017-b41d-205c0aa82ead' );
작은따옴표를 사용하면 ID가 문자열 상수로 해석됩니다. IN 절이 올바르게 작동하려면
위 내용은 Postgres와 SQL Server: 잘못된 열 참조로 인해 'WHERE IN(목록)' 쿼리가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!