복붙노트

[SQL] PostgreSQL의 열 이름은 대소 문자를 구분?

SQL

PostgreSQL의 열 이름은 대소 문자를 구분?

나는 DB 테이블 말을 가지고, 포스트 그레스에있는 사람은 열 이름의 말, "FIRST_NAME"가 다른 팀에 의해 계승. 이제이 열 이름이 테이블을 쿼리 PG 사령관을 사용하려합니다.

select * from persons where first_Name="xyz";

그리고 그것은 단지 반환

확실하지 내가 어리석은 일을하고 아니면 내가 실종 오전이 문제에 대한 해결 방법이 있다면?

해결법

  1. ==============================

    1.이중 인용되지 않은 (열 이름을 포함)의 모든 식별자의 PostgreSQL에서 소문자로 절첩되어있다. ( "FIRST_NAME") : 큰 따옴표로 생성하여 대문자 (그리고 / 또는 기타 구문 위반) 자신의 인생의 나머지 부분에 대한 이중 인용 할 필요가 유지 된 열 이름

    이중 인용되지 않은 (열 이름을 포함)의 모든 식별자의 PostgreSQL에서 소문자로 절첩되어있다. ( "FIRST_NAME") : 큰 따옴표로 생성하여 대문자 (그리고 / 또는 기타 구문 위반) 자신의 인생의 나머지 부분에 대한 이중 인용 할 필요가 유지 된 열 이름

    그래서, 그래, PostgreSQL의 열 이름은 대소 문자를 구분합니다 :

    SELECT * FROM persons WHERE "first_Name" = 'xyz';
    

    또한 'XYZ'주위에 잘못된 따옴표를 고정합니다. 값 (문자열 리터럴)은 작은 따옴표로 묶습니다.

    여기 설명서를 읽어 보시기 바랍니다.

    내 서 조언을 독점적으로 그렇게 필요하지 않습니다 이중 인용 법적, 소문자 이름을 사용하는 것입니다.

  2. ==============================

    2.문서를 인용 :

    문서를 인용 :

    또한 인용 식별자를 사용하여 작성할 수 있습니다 :

    UPDATE "my_table" SET "a" = 5;
    

    인용되지 않은 이름이 항상 (인용되지 않은 이름은 대문자로 절첩되는 SQL 표준 달리) 소문자로 절첩되는 반면 식별자를 인용하여, 그 대소 문자를 구분한다. 예를 들어, 식별자 FOO, foo를, 그리고 "푸"셋이 서로 상이한 PostgreSQL의하여 동일하지만, "foo"와 "Foo"되는 것으로 간주된다.

    당신은 휴대용 애플리케이션을 작성하려는 경우, 당신은 항상 특정 이름을 인용하거나 인용하지 않을 것을 권장합니다.

  3. ==============================

    3.혼합 된 경우 또는 대문자가 가지고있는 열 이름을 두 번 PostgreSQL을 인용한다. 그래서 가장 좋은 규칙은 밑줄 모든 작은 경우에 따라하는 것입니다.

    혼합 된 경우 또는 대문자가 가지고있는 열 이름을 두 번 PostgreSQL을 인용한다. 그래서 가장 좋은 규칙은 밑줄 모든 작은 경우에 따라하는 것입니다.

  4. from https://stackoverflow.com/questions/20878932/are-postgresql-column-names-case-sensitive by cc-by-sa and MIT license