Development Tip

간단한 PostgreSQL 삽입이 작동하지 않습니다.

yourdevel 2020. 12. 3. 20:40
반응형

간단한 PostgreSQL 삽입이 작동하지 않습니다.


postgres 테이블에 간단한 삽입을 시도하고 있지만 삽입하려는 값이 열 이름으로 해석된다는 오류가 발생합니다.

INSERT INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT, "auto dealer")

여기서 id는 null이 아닌 기본 키 및 자동 증가로 설정됩니다. phpPgAdmin에서 테이블을 설정할 때 선택한 상자입니다.

그래도이 오류가 발생합니다.

ERROR: ERROR: column "auto dealer" does not exist
Query = INSERT
INTO "imageTagBusinessMainCategory"
(id, businessMainCategory)
VALUES
(DEFAULT,
"auto dealer")

여기서 읽은 것처럼 테이블 이름을 큰 따옴표로 묶었습니다 .

그리고 여기서DEFAULT 읽은대로 id를 자동으로 늘려야 합니다.

어떤 아이디어? 감사!


'auto dealer'대신 사용하십시오 . PostgreSQL "은 식별자에 '대한 따옴표로 문자열에 대한 따옴표로 해석 합니다.

또한:

  • 이것이 새로운 프로젝트라면 대소 문자 혼합 테이블을 사용하지 마십시오. 나중에 좌절의 원인이됩니다. SQL 문에서 대소 문자를 사용할 수있는 대신 식별자 이름을 인용하고 대소 문자를 올바르게 가져와야합니다.

  • id/ 를 지정할 필요가 없습니다 DEFAULT. 이미 수행 한 작업을 수행하도록 요청하는 것입니다. 열에 기본값을 넣으려면 columnName/ 를 포함해야하는 DBMS를 만나지 DEFAULT못했기 때문에이 추가 KV 쌍이 나중에 코드를 읽는 사람에게 무슨 일이 일어나고 있는지 더 명확하게 만들지 않을 것이라고 생각합니다. .


INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')

편집 : 열 이름 주위에 큰 따옴표 추가


Postgres, Oracle 등은 대소 문자가 혼합 된 경우 열 이름이 따옴표로 묶일 것으로 예상합니다. 따라서 테이블 열에 대한 모든 작은 또는 모든 대문자 규칙을 만들거나 David Faber가 제안한대로 따옴표를 사용하십시오.

INSERT INTO "imageTagBusinessMainCategory"
("businessMainCategory")
VALUES
('auto dealer')

참고 URL : https://stackoverflow.com/questions/12428496/cannot-get-simple-postgresql-insert-to-work

반응형