Postgres DELETE 쿼리 오류: "열이 존재하지 않습니다."
PostgreSQL에서 DELETE 문을 실행할 때 "ERROR: "열 이름" 열이 존재하지 않습니다."라는 오류가 발생할 수 있습니다. 이 혼란스러운 오류는 일반적으로 쿼리 조건의 변수가 큰따옴표(")로 묶여 있을 때 발생하며, PostgreSQL은 이를 값이 아닌 열 이름으로 해석합니다.
예를 들어 다음 쿼리는 위의 오류를 발생시킵니다.
<code class="language-sql">delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";</code>
오류 메시지는 PostgreSQL이 "작업" 테이블에서 "fc1f56b5-ff41-43ed-b27c-39eac9354323"이라는 열을 찾으려고 함을 나타냅니다. 그러나 이 열은 존재하지 않습니다.
문제는 PostgreSQL이 테이블 이름, 프로시저 이름, 열 이름 등 큰따옴표(")로 묶인 모든 항목을 식별자로 처리한다는 것입니다. 이 경우 큰따옴표 사용으로 인해 PostgreSQL은 "fc1f56b5" 값을 잘못 처리합니다. - ff41-43ed-b27c-39eac9354323"은 열 이름으로 해석됩니다.
이 문제를 해결하려면 문자 상수를 큰따옴표 대신 작은따옴표(')로 묶어야 합니다. 작은따옴표를 사용하면 PostgreSQL이 지정된 값을 열 이름이 아닌 상수로 올바르게 인식할 수 있습니다. 올바른 쿼리는 다음과 같습니다.
<code class="language-sql">delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323';</code>
위 내용은 내 Postgres DELETE 쿼리가 '열이 존재하지 않습니다'라는 메시지와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!