programing

단순 Postgre를 가져올 수 없습니다.작업에 SQL 삽입

itsource 2023. 5. 7. 21:36
반응형

단순 Postgre를 가져올 수 없습니다.작업에 SQL 삽입

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'대신.포스트그레SQL 해석"식별자에 대한 인용문으로서,'문자열에 대한 따옴표로 표시됩니다.

또한:

  • 이 프로젝트가 새 프로젝트인 경우에는 사례가 혼합된 표를 사용하지 마십시오. 나중에 불만이 생길 수 있습니다.SQL 문에서 대/소문자를 사용할 수 없는 대신 식별자 이름을 따옴표로 묶고 대/소문자를 구분해야 합니다.

  • 지정할 필요가 없습니다.id/DEFAULT당신은 그것이 이미 했을 일을 하라고 요구하고 있습니다.당신이 포함해야 하는 DBMS를 만난 적이 없습니다.columnName/DEFAULT만약 당신이 그것이 열에 기본값을 넣기를 원한다면, 그래서 나는 이 추가적인 KV 쌍이 나중에 당신의 코드를 읽는 누군가에게 무슨 일이 일어나고 있는지 더 명확하게 해줄 것이라고 생각하지 않습니다.

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

편집: 열 이름 주위에 큰따옴표가 추가되었습니다.

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

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

나의 경우, 나는 카멜 케이스에서 칼럼 이름을 변경해야 했습니다.'isAdmin'속임수를 써서'is_admin'.

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

반응형