답변:
.sql
파일의 SQL 문에서 작동 할 수 있습니까? 예를 들어 내가 한 수 CREATE DATABASE mydb;
다음에 \connect mydb
?
psql
SQL 스크립트 파일에 명령을 포함시킬 수 없다고 확신 합니다.
PSQL 프롬프트에서 다음을 수행 할 수 있습니다.
\connect (or \c) dbname
psql과 연결할 때 데이터베이스를 선택할 수 있습니다. 스크립트에서 사용할 때 편리합니다.
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
\l
데이터베이스에 대한
\c
데이터베이스 이름은 DB로 전환하는
\df
특정 데이터베이스에 저장 프로 시저
psql의 메타 명령 사용 \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
( 문서 참조 )
예: \c MyDatabase
참고 것을 \c
및 \connect
메타 명령은 대소 문자를 구분합니다 .
시작할 때 특정 데이터베이스로 전환하려면 다음을 시도하십시오
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;
기본적으로 Postgres는 포트 5432에서 실행됩니다. Postgres는 다른 포트에서 실행되는 경우 명령 줄에서 포트를 전달해야합니다.
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;
간단한 별칭으로 편리하게 만들 수 있습니다.
귀하의 .bashrc
또는.bash_profile
function psql()
{
db=vigneshdb
if [ "$1" != ""]; then
db=$1
fi
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}
psql
명령 행에서 실행 하면 기본 데이터베이스로 전환됩니다. psql anotherdb
시작시 인수로 이름이있는 db로 전환됩니다.
질문에 명시 적으로 언급되어 있지 않지만 목적은 특정 스키마 / 데이터베이스에 연결하는 것입니다.
다른 옵션은 스키마에 직접 연결하는 것입니다. 예:
sudo -u postgres psql -d my_database_name
출처 man psql
:
-d dbname
--dbname=dbname
Specifies the name of the database to connect to. This is equivalent to specifying dbname as the first non-option argument on the command line.
If this parameter contains an = sign or starts with a valid URI prefix (postgresql:// or postgres://), it is treated as a conninfo string. See Section 31.1.1, “Connection Strings”, in the
documentation for more information.
당신은을 사용하여 연결할 수 있습니다
\ c dbname
POSTGRESQL 또는 SQL에 대해 가능한 모든 명령을 보려면 다음 단계를 수행하십시오.
rails dbconsole (현재 ENV 데이터베이스로 다시 지정됨)
\? (POSTGRESQL 명령의 경우)
또는
\ h (SQL 명령의 경우)
Q를 눌러 종료
다른 답변에서 언급했듯이 다른 데이터베이스를 사용하려면 연결을 변경해야합니다.
Postgres는 스키마와 함께 작동합니다. 단일 데이터베이스에 여러 체계를 가질 수 있습니다. 따라서 동일한 데이터베이스에서 작업하고 스키마를 변경하려는 경우 다음을 수행 할 수 있습니다.
SET SCHEMA 'schema_name';
SET SCHEMA
SET SCHEMA 'schema_name'
not 로 사용됩니다 SET SCHEMA 'database_name'
. 따라서 이것은 데이터베이스가 아닌 스키마를 변경하는 SQL 방법입니다. 또한 이것은 비슷합니다 SET search_path TO schema_name
. 여기 또는 여기에있는 설명서를 참조 하십시오 .
psql
PostgreSQL의 프론트 엔드에 관한 것입니까?