[postgresql] PostgreSQL에서“use database_name”명령

PostgreSQL 초보자입니다.

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

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

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



답변

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

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


답변

연결시 사용할 데이터베이스를 지정해야합니다. 스크립트에 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에 대한 정보는 너무 적습니다.


답변

pgAdmin에서 당신은 또한 사용할 수 있습니다

search_path를 your_db_name으로 설정하십시오.


답변

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

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

예:

SET search_path = different_schema_name;

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


답변

처음 연결할 때이 쉼표를 사용하십시오 psql

=# psql <databaseName> <usernamePostgresql>


답변