2016-09-21 91 views
0

我想比较我的分布式数据库和postgresql。所以我需要使用Python在postgresql上模拟多用户SQL操作。模拟多用户操作Python的PostgreSQL?

我可以使用mutliprocessing模块?

这里是我的代码

# encoding=utf-8 
import datetime 
import multiprocessing 
import psycopg2 

def exe(cmd): 
    conn = psycopg2.connect("dbname = test user = pj password = dbrgdbrg") 
    cur = conn.cursor() 
    try: 
     sql = "SELECT id FROM test WHERE ST_MAKEENVELOPE(118,38,119,39,4326) && wkb_geometry;" 
     cur.execute(sql) 
     print cur.fetchone() 
    except Exception, e: 
     print e 

if __name__ == "__main__": 
    cmds=range(5) 
    for cmd in cmds: 
     p = multiprocessing.Process(target=exe,args=(cmd,)) 
     p.start() 
     p.join() 

但我不知道这是否是正确的?如果我想为我的SQL语句创建随机参数,该怎么办?

回答

1

可以使用random功能来生成随机“ST_MAKEENVELOPE`预选赛,这是假设他们属于某个范围。然后使用随机函数获得5个不同的ST_MAKEENVELOPE的ID。

另一件事你可以使用for cmd in range(5):而不是创建一个列表,然后使用它。

+0

但是当我运行'sql =“选择id从测试其中id user82538

+0

'sql =“SELECT id from test where id <”+ str(random.randint(0,10))' – harshil9968