Я читаю список таблиц с запросом sql через pandas в базе данных postgres. он читает только последнюю таблицу с одним фрагментом данных. Мне нужно прочитать первую таблицу и отправить запрос и итерировать и записать его в базу данных. Когда он завершит все строки, прочитайте вторую таблицу и запишите ее в базу данных с помощью чанка. После завершения всех таблиц соединение будет закрыто.
код:
chunksize=30
offset=0
j=0
counter=0
print('now Connected 1st')
conn1=psql.connect()
conn2=dvd.connect()
print('now Connected 2nd')
print('hello! now reading start')
list=['all_m_splty','all_m_lgd_states']
while True:
for tale in list:
sql="Select * from sha.%s Limit %d offset %d" % (table,chunksize,offset)
print('Reading...')
counter+=1
if counter<len(table):
for df in pd.read_sql_query(sql,conn1,chunksize=chunksize):
print('writing...')
df.to_sql(name=table,con=conn2, if_exists='replace',schema='public',index=False)
offset+= chunksize
j+=df.index[-1]+1
print('Total no. of Rows inserted {} in {}'.format(j,table))
if df.index[-1]+1 < chunksize:
print('Finish {}'.format(table))
break
break
print("Main DisConnected!")
conn.close()
conn2.close()
вывод:
now Connected 1st
now Connected 2nd
hello! now reading start
Reading...
writing...
Total no. of Rows inserted 30 in all_m_lgd_states
Main DisConnected!