Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

How do call multiple sql files in a single sql file, in postgres

For example I have aaa.sql, bbb.sql, ccc.sql.

I want to execute this 3 files from xxx.sql.

Can anyone suggest me how to do this.

share|improve this question

2 Answers 2

Not exactly what you are asking for, but will serve your purpose: 1) Put all of your script files in a folder; and 2) use a bash script to iterate through your files and run psql. For example:

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

This is in fact a little better because you won't have to type your files' names.

share|improve this answer

If you are running these files through psql you want the \i directive ("execute commands from file").

xxx.sql:

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

If you are passing these through some other program you will need to combine the files yourself - I do not believe there is any SQL-standard way of executing external files.

share|improve this answer
    
Thank you for the reply. I will test and confirm if I was able to achieve it or not –  Trip Feb 3 '12 at 22:13
    
Doesn't look like working yet Not sure if I am missing something. do I need semi colon at the end??? -Not Really !!! –  Trip Feb 4 '12 at 0:04
    
You need to be more specific than "not working" - I assure you this does work -- Refer to the psql manual –  voretaq7 Feb 4 '12 at 1:09
    
It worked. Finally :-) Thanku Problem was -- it was not able to recognize the file and O specifiled the relative path for the file and its working Thank you once again –  Trip Feb 6 '12 at 15:34
    
@Trip Trip, don't forget to give voretaq credit for his answer! –  Richard T Apr 12 at 20:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.