Postgres의 단일 SQL 파일에서 여러 Sql 파일 호출


11

postgres에서 단일 SQL 파일로 여러 SQL 파일을 호출하는 방법

예를 들어 aaa.sql, bbb.sql, ccc.sql이 있습니다.

xxx.sql 에서이 3 개의 파일을 실행하고 싶습니다.

누구 든지이 작업을 수행하는 방법을 제안 할 수 있습니까?

답변:


12

이러한 파일을 통해 실행중인 경우 지시문 ( "파일에서 명령 실행") psql을 원합니다 \i.

xxx.sql :

\i aaa.sql
\i bbb.sql
\i ccc.sql

다른 프로그램을 통해이 파일을 전달하는 경우 파일을 직접 결합해야합니다. 외부 파일을 실행하는 SQL 표준 방법이 없다고 생각합니다.


답장을 보내 주셔서 감사합니다. 나는 그것을 달성 할 수 있었는지 테스트하고 확인할 것이다
Trip

아직 작동하지 않는 것 같습니다. 누락 된 것이 있는지 확실하지 않습니다. 끝에 세미콜론이 필요합니까 ??? -정말 아닙니다 !!!
Trip

1
당신은 "작동하지 않는"보다 더 구체적 일 필요 - 당신이 확신 하지 참조 - 작업 psql의 설명서
voretaq7

효과가있었습니다. 마지막으로 :-) Thanku 문제는-파일을 인식 할 수 없었고 파일과 그 작업에 대한 상대 경로를 지정했습니다. 다시 한 번 감사합니다
Trip

@Trip Trip, 그의 답변에 대한 voretaq의 신용을주는 것을 잊지 마십시오!
Richard T

4

정확히 당신이 요구하는 것은 아니지만 목적을 달성 할 것입니다 : 1) 모든 스크립트 파일을 폴더에 넣으십시오. 2) bash 스크립트를 사용하여 파일을 반복하고 psql을 실행하십시오. 예를 들면 다음과 같습니다.

SCRIPTS_DIR=/home/myproject/scripts
DATABASE_NAME=database_name

for file in $SCRIPTS_DIR/*.sql
    do sudo -u postgres psql $DATABASE_NAME -f $file
done

파일 이름을 입력 할 필요가 없기 때문에 이것은 실제로 조금 더 좋습니다.


3

bash 쉘에서는 간단한 것으로도 할 수 있습니다 find -exec

find sql/ -name *.sql -exec psql -U user -f {} \;

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