0
我需要創建一個perl腳本,它需要兩個參數(int runid和int iters),然後通過插入一個隨機數和相關的runid來爲iter填充postgresql數據庫中的表倍。我已經得到了這個簡單的腳本來處理perl的最常用數據庫接口DBI,但是,我認爲這應該可以通過將插入命令管道插入postgresql的psql工具來實現。但是,我很困惑如何開始。任何幫助,將不勝感激。管道插入命令到psql工具
我需要創建一個perl腳本,它需要兩個參數(int runid和int iters),然後通過插入一個隨機數和相關的runid來爲iter填充postgresql數據庫中的表倍。我已經得到了這個簡單的腳本來處理perl的最常用數據庫接口DBI,但是,我認爲這應該可以通過將插入命令管道插入postgresql的psql工具來實現。但是,我很困惑如何開始。任何幫助,將不勝感激。管道插入命令到psql工具
你也可以只使用一個簡單的SQL命令generate_series()
:
INSERT INTO tbl (runid, rnd_col)
SELECT <runid>, (random()*1000)::int
FROM generate_series(1, <iters>)
這將插入與0和1000之間的隨機數integer
行iters
適應您的需求。比任何你可能想到的腳本都要快。
在psql:
psql $connection_parameters -c $SQL_from_above
DBI就好了。你爲什麼試圖切換到管道命令?這樣沒有什麼可以獲得的。 (如果你真的*有*:你可以打開一個文件句柄,像'open my $ pipe',' - ','psql',@options或die') – amon
你可以在postgresql函數中執行插入操作,你只需要在perl中選擇my_function(1,100)'。如果是你想重寫問題 –
抱歉,但我試圖按照艾農的建議,我很困惑我將如何實際調用INSERT INTO命令,這將在$管? – user1943079