python批量插入數據到postgres

 一、python腳本

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import string

import psycopg2
import random

from psycopg2 import extras

address_list = {'北京', '上海', '深圳', '廣州', '長沙', '成都', '吉林', '邵陽', '九江', '長春', '拉薩'}

conn = psycopg2.connect(database="test", user="test", password="test", host="127.0.0.1", port="5433")
print("Opened database successfully")

cur = conn.cursor()

# values 後面直接%s
sql = '''INSERT INTO COMPANY (ID, NAME, AGE, ADDRESS, SALARY) 
         VALUES %s
    '''
datalist = []
for i in range(1, 10000000):
    # 生成6位隨機字符串
    name = ''.join(random.sample(string.ascii_letters + string.digits, 8))
    age = random.randint(18, 80)
    address = random.sample(address_list, 1)[0]
    salary = random.randrange(5000, 100000)
    # 行數據是以元組的形式存放
    datalist.append((++i, name, age, address, salary))
extras.execute_values(cur, sql, datalist, page_size=20000)
conn.commit()

print("All records created successfully")

conn.close()

二、執行結果

E:\Python\Python38\python3.exe F:/IdeaProjects/my-jooq/my-python/batch_insert.py
Opened database successfully
All records created successfully

Process finished with exit code 0

三、查看結果 

從結果可以看出批量插入成功 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章