我在Python
中執行了幾次循環中的自寫函數postgresql
。我正在使用psycopg2
框架來執行此操作。 功能我竟結構如下寫道:函數執行後刪除臨時表
CREATE OR REPLACE FUNCTION my_func()
RETURNS void AS
$$
BEGIN
-- create a temporary table that should be deleted after
-- the functions finishes
-- normally a CREATE TABLE ... would be here
CREATE TEMPORARY TABLE temp_t
(
seq integer,
...
) ON COMMIT DROP;
-- now the insert
INSERT INTO temp_t
SELECT
...
END
$$
LANGUAGE 'plpgsql';
那基本上蟒蛇部分
import time
import psycopg2
conn = psycopg2.connect(host="localhost", user="user", password="...", dbname="some_db")
cur = conn.cursor()
for i in range(1, 11):
print i
print time.clock()
cur.callproc("my_func")
print time.clock()
cur.close()
conn.close()
我得到的錯誤,當我運行python
腳本是:
---> relation "temp_t" already exists
基本上我想要測量執行該函數需要多長時間。這樣做,循環將運行幾次。將SELECT
的結果存儲在一個臨時表中應該取代通常會創建輸出表的CREATE TABLE ...
部分 爲什麼在我執行Python
的功能後,該功能不起作用postgres
?