Postgresql의 "열이 존재하지 않습니다" 오류 이해
간단해 보이는 Postgresql 쿼리를 실행하려고 하면 사용자에게 오류가 발생할 수 있습니다. 지정된 열이 존재하지 않는다고 주장합니다. 이는 특히 문제의 열이 데이터베이스에 존재하는 것으로 알려진 경우 혼란스러울 수 있습니다.
문제 조사
이 오류를 유발하는 일반적인 쿼리는 다음과 유사합니다. 다음:
SELECT * FROM employee WHERE "lName" LIKE "Smith"
그러나 오류 메시지는 "Smith" 열이 존재하지 않음을 나타냅니다. 실제 열 이름이 "lName"이므로 헷갈립니다.
오류의 근본 원인
이 오류는 Postgresql이 큰따옴표("")를 해석하는 방식을 잘못 이해한 데서 비롯됩니다. SQL 문에서. Postgresql에서 큰따옴표는 테이블 이름 및 열 이름과 같은 데이터베이스 개체를 참조하는 따옴표로 묶인 식별자를 묶습니다. 그러나 이 경우 "Smith" 주위의 큰따옴표는 대신 문자열 상수를 생성합니다.
쿼리 수정
문제를 수정하려면 쿼리를 수정해야 합니다. 열 이름 "lName"을 올바르게 인용하려면:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
여기서는 작은따옴표(')를 사용하여 값 'Smith'를 묶어서 비교용 문자열 리터럴을 생성합니다.
추가 고려 사항
인용 외에도 혼동을 일으킬 수 있는 또 다른 원인은 LIKE에 누락된 와일드카드입니다. 비교. 일반적으로 LIKE 연산에는 원하는 수의 문자와 일치하는 와일드카드 문자(%)가 포함됩니다. 이 쿼리에서는 다음을 사용하는 것이 더 적절할 수 있습니다.
SELECT * FROM employee WHERE "lName" LIKE 'Smith%'
이렇게 하면 "lName" 열의 값이 'Smith'로 시작하는 행이 결과 집합에 포함됩니다.
위 내용은 열이 존재하는데도 내 Postgresql 쿼리가 '열이 존재하지 않습니다' 오류를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!