2013-04-13 92 views
0

我需要創建一個perl腳本,它需要兩個參數(int runid和int iters),然後通過插入一個隨機數和相關的runid來爲iter填充postgresql數據庫中的表倍。我已經得到了這個簡單的腳本來處理perl的最常用數據庫接口DBI,但是,我認爲這應該可以通過將插入命令管道插入postgresql的psql工具來實現。但是,我很困惑如何開始。任何幫助,將不勝感激。管道插入命令到psql工具

+0

DBI就好了。你爲什麼試圖切換到管道命令?這樣沒有什麼可以獲得的。 (如果你真的*有*:你可以打開一個文件句柄,像'open my $ pipe',' - ','psql',@options或die') – amon

+0

你可以在postgresql函數中執行插入操作,你只需要在perl中選擇my_function(1,100)'。如果是你想重寫問題 –

+0

抱歉,但我試圖按照艾農的建議,我很困惑我將如何實際調用INSERT INTO命令,這將在$管? – user1943079

回答

2

你也可以只使用一個簡單的SQL命令generate_series()

INSERT INTO tbl (runid, rnd_col) 
SELECT <runid>, (random()*1000)::int 
FROM generate_series(1, <iters>) 

這將插入與0和1000之間的隨機數integeriters適應您的需求。比任何你可能想到的腳本都要快。

在psql:

psql $connection_parameters -c $SQL_from_above