2010-06-24 85 views
2

在PostgreSQL和bash(Linux)的,有沒有方法來直接從文件系統導入文件等PostgreSQL的導入文件

[execute.sh]

的pgsql .... -f insert.txt

[insert.txt]

插入到表(ID,文件)的值(1,進口( '/路徑/到/文件'))

有似乎沒有導入功能,如bytea_import好吧,lo_import wou ld保存詮釋,我不知道如何獲取文件(這些文件是小尺寸,所以使用lo_import似乎不合適)

而且我可以如何將insert.txt語句移動到PostgreSQL?

回答

6

我不知道你後什麼,但如果你有SQL語句的腳本,例如插入語句你提到,你可以運行psql,然後在psql中運行腳本。例如:

[email protected]:~$ psql dbname 
psql (8.4.1) 
Type "help" for help. 

dbname=# \i /tmp/queries.sql 

這將運行/tmp/queries.sql中的語句。

希望這是你所要求的。

+0

燁看到了這一點,但我需要在bash中使用期望,以便我可以使用導入語句,我正在尋找類似於mysql中的輸入管道的東西 mysql dbname -uuser -pmypwd monmonja 2010-06-30 22:16:21

+1

然後也許複製可能會幫助你。 引用PostgreSQL文檔:COPY在PostgreSQL表和標準文件系統文件之間移動數據。 COPY TO將表格的內容複製到文件中,而COPY FROM將數據從文件複製到表格(將數據附加到表格中的任何內容)。 – 2010-07-01 15:33:14

1

在更詳細的參數的情況下:

$ psql -h [host] -p [port] -d [databaseName] -U [user] -f [/absolute/path/to/file] 
相關問題