[SQL] 포스트 그레스는 - 어디에서 (목록) - 열이 존재하지 않습니다
SQL포스트 그레스는 - 어디에서 (목록) - 열이 존재하지 않습니다
나는 SQL 서버에서 오는 그리고 난 다음 쿼리가 작동하지 않는 것을보고 놀랐습니다 :
DELETE FROM user_job_titles WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
)
user_job_titles에는 다음과 같은 열이 곳이 있습니다
id
user_id
job_title_id
오류 :
ERROR: column "c836d018-1d12-4507-a268-a4d80d6d3f54" does not exist
LINE 2: "c836d018-1d12-4507-a268-a4d80d6d3f54"
나는 최신의 PostgreSQL 버전 pgAdmin를 사용하고 있습니다. 이 쿼리를 실행할 수있는 다른 방법이 있습니까?
해결법
-
==============================
1.문자열 상수에 대한 작은 따옴표를 사용합니다 :
문자열 상수에 대한 작은 따옴표를 사용합니다 :
DELETE FROM user_job_titles WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54', 'd0961a90-7d31-4c4c-9c1b-671115e3d833', '62dda420-6e62-4017-b41d-205c0aa82ead' );
따옴표는 테이블과 컬럼 이름으로 사용되는 이스케이프 문자입니다. 따라서 오류가 발생했습니다.
-
==============================
2.당신은 '와 문자열 리터럴을 인용 할 필요가
당신은 '와 문자열 리터럴을 인용 할 필요가
DELETE FROM user_job_titles WHERE id IN ( 'c836d018-1d12-4507-a268-a4d80d6d3f54', 'd0961a90-7d31-4c4c-9c1b-671115e3d833', '62dda420-6e62-4017-b41d-205c0aa82ead' );
그럼 당신은 SET QUOTED_IDENTIFIER AS OFF 있습니다. 기본적으로는 ON입니다.
검사:
SET QUOTED_IDENTIFIER OFF; SELECT "A" -- The same behaviour as in Postgresql SET QUOTED_IDENTIFIER ON; SELECT "A" -- Invalid column name 'A'.
LiveDemo
from https://stackoverflow.com/questions/35814771/postgres-where-in-list-column-does-not-exist by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 동시 액세스에 테이블의 행의 특정 NR를 표시합니다 (0) | 2020.07.19 |
---|---|
[SQL] 여러 자체 조인 결과에 GROUP에 따라 (0) | 2020.07.19 |
[SQL] 주의 : 정의되지 않은 인덱스 [중복] (0) | 2020.07.18 |
[SQL] 값이 암시 적으로 날짜 형식으로 변환하는 방법을 이해 할 수 없습니다 (0) | 2020.07.18 |
[SQL] 어떻게 VBA를 사용하여 서식있는 텍스트 메모에 액세스 테이블에 텍스트 필드를 변환하는 (0) | 2020.07.18 |