2013-07-19 2 views
0

Postgres에서 테이블의 이름을 변경 한 후에 이상한 동작이 발생합니다. 따옴표없이 테이블을 참조하면 작동하지 않습니다. 예를 들어테이블의 이름을 변경 한 후 인용 부호가있는 식별자를 사용해야합니다.

는 : 원래 이름이었다«장치», 나는 다음과 같은 SELECT 휴식«장치»그것을 변경 한 후 :

SELECT * from Devices 

그러나 이것은

SELECT * from "Devices" 

작품은 예상대로 .

아이디어가 있으십니까?

답변

4

설명서에 따라 identifiers are lower-cased unless quoted.

이름을 변경했을 때 RENAME TO "Devices"을 입력하면 대소 문자가 혼용됩니다. 어디서나 인용 된 대소 문자로 참조해야합니다. devices 테이블 PostgreSQL을하려면

이 모든 있습니다 이름 :

  • devices
  • DEVICES
  • Devices
  • DeViCES

하지만 이러한 혼합형과 별도의 테이블 이름입니다 사례 이름 : 이 그 SQL 제외하고는 SQL 표준에 따라입니다

  • "Devices"
  • "DEVICES"
    • UPPER CASE 않은 인용 이름으로 구현, PostgreSQL의 역사적인 이유 lower cases 그들을 위해 대신이 필요합니다.

    0

    다시 이름을 devices (큰 따옴표없이 소문자)으로 바꿉니다. 그런 다음 대소 문자를 혼합하여 원하는 경우 참조 할 수 있습니다.

    select * from dEvIceS 
    
    관련 문제