> 데이터 베이스 > MySQL 튜토리얼 > Postgres와 SQL Server: 잘못된 열 참조로 인해 'WHERE IN(목록)' 쿼리가 실패하는 이유는 무엇입니까?

Postgres와 SQL Server: 잘못된 열 참조로 인해 'WHERE IN(목록)' 쿼리가 실패하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-01 02:13:09
원래의
176명이 탐색했습니다.

Postgres vs. SQL Server: Why Does My

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿