import mysql.connector as mysql
from mysql.connector import Error
import pandas as pd 

arquivo = pd.read_csv(r'C:/Users/monitor/Downloads/teste/teste.csv', skiprows=6, sep=';') 
df = pd.DataFrame(arquivo)

try:
    conexao = mysql.connect(host='localhost', database='db_sm', user='root', password='<PASSWORD>')
    if conexao.is_connected():
        cursor = conexao.cursor()
        cursor.execute("select database();")
        record = cursor.fetchone()
        print("Conectado no banco de dados: ", record)
        cursor.execute('DROP TABLE IF EXISTS temp;')
        print('Criando tabela temporária...')

        cursor.execute("""CREATE TABLE temp (viagem int ,cliente varchar(100),embarcador varchar(100),corretora varchar(100),seguradora varchar(25),veiculo varchar(20),
        tecnologia varchar(20),equipamento varchar(50),condutor varchar(70),origem varchar(100),destino varchar(80), previsao_inicio varchar(100),
        inicio_real varchar(100),termino varchar(100),operacao varchar(25),valor_carga varchar(15), escolta varchar(50),isca varchar(50),segunda_isca varchar(20),
        imobilizador varchar(30),observacoes text,contrato varchar(20),inclusao varchar(30),status_viagem varchar(40),usuario_gs varchar(100),escolta_monitorada varchar(20),
            motivo_finalizacao varchar(50))""")

        for i,row in df.fillna(' ').iterrows():
            sql = "INSERT INTO db_sm.temp VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
            cursor.execute(sql, tuple(row))
            print("Inserindo {} linhas banco de dados...".format(i))
            conexao.commit()

except Error as e:
            print("Erro de Conexão com MYSQL", e)
cursor.execute("""INSERT IGNORE INTO sm_lancadas (viagem, cliente, embarcador, corretora, seguradora, veiculo, tecnologia, equipamento, condutor, 
origem, destino,previsao_inicio, inicio, termino, operacao, valor_carga, escolta,
isca, segunda_isca, imobilizador, observacoes, contrato, inclusao, status_viagem, usuario_gs, escolta_monitorada, motivo_finalizacao)
SELECT viagem, cliente, embarcador, corretora, seguradora, veiculo, tecnologia, equipamento, condutor, origem, destino, previsao_inicio, inicio_real, termino, operacao, 
valor_carga, escolta, isca, segunda_isca, imobilizador, observacoes, contrato, inclusao, status_viagem, usuario_gs, escolta_monitorada, motivo_finalizacao FROM temp WHERE LOCATE ('F', status_viagem) > 0""")
conexao.commit()