1
resposta

Estou com duvida em como inserir varios elementos dentro do banco pelo mysql.connector

import mysql.connector

mysql.connection = mysql.connector.connect(host='localhost',
                                          user='root',
                                          password='rgs050601',
                                          database='testegr')

sql = "INSERT INTO pet (id,numero,idade) VALUES %s"

pd = "(5,6,1),(9,8,1),(7,5,9)"

cursor = mysql.connection.cursor()

cursor.execute(sql,(pd,))
mysql.connection.commit()

esse não é meu codigo original so fiz como base de teste bem simples queria inserir os valores de pd direto na query mas sem usar o executemany ou concatenar os valores na string de cima que seria a da pesquisa

1 resposta

Oii Renan, tudo bem contigo?

Desculpe por demorar tanto a te trazer um retorno.

Uma solução para adicionar vários elementos no banco sem concatenar e sem o executemany é utilizar uma estrutura de repetição que execute várias consultas de inserção.

Algo assim:

import mysql.connector

# Estabelecer a conexão com o banco de dados
conn = mysql.connector.connect(
    host="localhost",
    user="seu_usuario",
    password="sua_senha",
    database="seu_banco_de_dados"
)

# Criar um cursor para executar as consultas
cursor = conn.cursor()

# Lista de elementos a serem inseridos
elementos = [
    ('valor1', 'valor2', 'valor3'),
    ('valor4', 'valor5', 'valor6'),
    ('valor7', 'valor8', 'valor9')
]

# Executar a consulta de inserção para cada elemento
for elemento in elementos:
    query = "INSERT INTO tabela (coluna1, coluna2, coluna3) VALUES (%s, %s, %s)"
    cursor.execute(query, elemento)

# Confirmar as alterações no banco de dados
conn.commit()

# Fechar a conexão com o banco de dados
conn.close()

Espero que essa seja uma alternativa plausível :)

Abração!