PostgreSQL에서“use database_name”명령


366

PostgreSQL 초보자입니다.

USEMySQL 또는 MS SQL Server 와 같은 Postgres의 쿼리 편집기에서 다른 데이터베이스에 연결하고 싶습니다 .

\c databasename인터넷을 검색하여 찾았 지만 psql 에서만 실행됩니다 . PostgreSQL 쿼리 편집기에서 시도하면 구문 오류가 발생합니다.

pgscripting으로 데이터베이스를 변경해야합니다. 누구나 그것을하는 방법을 알고 있습니까?



다른 옵션은 스키마에 직접 연결하는 것입니다. 예 : sudo -u postgres psql -d my_database_name. 출처
AlikElzin-kilaka

답변:


381

연결되면 PostgreSQL항상 특정 데이터베이스에 연결 됩니다. 다른 데이터베이스에 액세스하려면 새 연결이 있어야합니다.

사용 \cpsql의에서하면 기존 연결을 닫고 지정된 데이터베이스 및 / 또는 자격 증명을 사용하여, 새로운 하나를 얻습니다. 완전히 새로운 백엔드 프로세스와 모든 것을 얻습니다.


pgscript 쿼리를 사용하여 데이터베이스에 새로운 연결을 만들고 이전을 닫을 수있는 방법을 알려줄 수 있습니까?
sam

pgscript에 익숙하지 않습니다. 그것이 함수를 작성하는 언어라면, 할 수 없다는 대답이 있습니다. 어쩌면 다른 데이터베이스 대신 다른 스키마 에 테이블을 넣는 것을 고려해야 합니까?
kgrittn

2
쿼리는 PostgreSQL에서 데이터베이스를 변경할 수 없습니다.
kgrittn

모든 도움을 주셔서 감사합니다 kgrittn .. :)
sam

8
내가 실수하지 않으면 MySQL의 데이터베이스는 PostgreSQL의 스키마와 더 유사합니다.이 둘 사이에서 전환 할 수 있지만 PostgreSQL의 DB는 완전히 다른 볼 게임입니다.
mpen

213

연결시 사용할 데이터베이스를 지정해야합니다. 스크립트에 psql을 사용하려면 "\ c name_database"를 사용할 수 있습니다

user_name=# CREATE DATABASE testdatabase; 
user_name=# \c testdatabase 

이 시점에서 다음과 같은 결과가 표시 될 수 있습니다

You are now connected to database "testdatabase" as user "user_name".
testdatabase=#

프롬프트가 어떻게 바뀌는 지 확인하십시오. 건배, 방금 이것도 찾고 있었지만 MySQL과 다른 사람들에 비해 postgreSQL에 대한 정보는 너무 적습니다.



9

내가 직면 한 MySQL에서 마이그레이션하는 동안의 기본 문제 database는 PostgreSQL에서도 동일한 용어라고 생각 했지만 그렇지 않았습니다. 따라서 응용 프로그램 또는에서 데이터베이스를 전환하려는 pgAdmin경우 결과가 예상과 다릅니다. 필자의 경우와 마찬가지로 각 고객과 별도의 관리 스키마에 대해 별도의 스키마 (여기서는 PostgreSQL 용어 고려)가 있습니다. 따라서 응용 프로그램에서 스키마 간을 전환해야합니다.

이를 위해 SET search_path명령을 사용할 수 있습니다 . 현재 스키마를 현재 세션에 대해 지정된 스키마 이름으로 전환합니다.

예:

SET search_path = different_schema_name;

그러면 current_schema가 세션에 지정된 스키마로 변경됩니다. 영구적으로 변경하려면 postgresql.conf파일 을 변경해야 합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.