저는 postgres 9.2를 사용하고 있습니다. postgres db의 모든 테이블에 대해 모든 열 이름을 UPPER CASE로 변경해야합니다.포스트 그레스에서 테이블 열 이름을 대문자로 변경하십시오.
이렇게 할 방법이 있습니까? 포스트 그레스의 구성을 변경해야합니까?
저는 postgres 9.2를 사용하고 있습니다. postgres db의 모든 테이블에 대해 모든 열 이름을 UPPER CASE로 변경해야합니다.포스트 그레스에서 테이블 열 이름을 대문자로 변경하십시오.
이렇게 할 방법이 있습니까? 포스트 그레스의 구성을 변경해야합니까?
내가 어떻게하는지 설명하기 전에, 나는 강력하게을 제안하지 않았다. 테이블 또는 열 이름 등 인용되지 않은 경우의 PostgreSQL에서
:SELECT name FROM mytable WHERE id = 10
경우 :
SELECT Name FROM MyTable WHERE ID = 10
실제로 자동 제 경우을 낮추기 때문에, 상기 쿼리 절첩은 동일 모든 이름을 대문자로 변환하면이 문 은 작동하지 않습니다 :
,841,당신은해야합니다 따옴표이 쿼리의 모든 하나의 이름은 그것이 작동되도록하려면 다음, 다른 한편으로는, 당신은 단지 계약을 표준 PostgreSQL을 소문자를 사용하는 경우
SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
, 당신은 어떤 경우를 사용할 수 있습니다 당신이 어떤 이름을 인용하지 않는 한 그것은 효과가있을 것입니다. 당신은 여전히 대문자로 변환하는 고집
pg_dump --schema-only
를 사용하는 것을 할 수 있습니다.
이 작업을 수행 한 후 모든 CREATE TABLE
문을 확인하고이 덤프를 기반으로 적절한 ALTER TABLE
문을 구성하십시오.이를 수행하려면 스크립트 (Perl 또는 Python)를 작성해야합니다.
또는 INFORMATION_SCHEMA.TABLES 및/또는 INFORMATION_SCHEMA.COLUMNS을 읽고 적절한 ALTER TABLE
문을 작성하고 실행할 수 있습니다.
'CREATE TABLE'에있는 이중 따옴표 열 이름은 따옴표 문자를 포함하는 열 이름을 만듭니다. 그러나 여전히 * 모든 것이 소문자입니다. – weberc2
@ weberc2 : 이것은 단순히 거짓입니다. SQLFiddle proof : http://sqlfiddle.com/#!17/de97a/1 – mvp
내 텍스트 편집기에 스마트 인용 부호를 삽입 한 것처럼 보입니다. 내 실수. – weberc2