说到插入数据,一开始就想到:
insert int A values(*******************)
插入多条数据,最多想到:
1.prepare,然后再bind参数,最后一次性插入多条
2.写成这样:
insert into A values(**********),(*************),(*****************)
但是在百万数据面前,都太慢了。
copy_from的参数说明:copy_from(file, table,sep='\t',null='\\N',size=8192,columns=None)
python写法如下:
- #encoding=utf-8
- import psycopg2
- import StringIO
- if __name__=='__main__':
- s = ""
- for i in range(0,1000000):
- s += str(i)+"\taaa\t13434\t1\t2013-01-11\t1\t2\n"
- conn = psycopg2.connect(host='localhost',user="test",password="********",database="test")
- cur = conn.cursor()
- cur.copy_from(StringIO.StringIO(s),'tb_user',columns=('id','userame','passwd','roleid','lasttime','failnum','info'))
- conn.commit()
- cur.close()
- conn.close()
- print 'done'