Si necesita insertar datos en una tabla MySQL usando Python, no busque más.
Si necesita aprender primero sobre el mysql.connector
y cómo hacer que esto funcione, primero eche un vistazo a la Cómo instalar el controlador MySQL en Python publicar antes de continuar.
Cómo insertar en una tabla MySQL en Python
import mysql.connector
mydb = mysql.connector.join(
host = "localhost",
person = "username",
password = "YoUrPaSsWoRd",
database = "your_database"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clients (identify, deal with) VALUES (%s, %s)"
val = ("Andrew", "Someplace good")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "file efficiently inserted")
Esto insertará una sola fila en la tabla MySQL.
Nótese la importancia de la .commit()
una vez que hayamos ejecutado nuestra instrucción SQL. Esto es para persistir en la base de datos.
Si necesita insertar varias filas al mismo tiempo, tenemos una mejor opción para usted.
Cómo insertar múltiples filas en MysQL usando Python
import mysql.connector
mydb = mysql.connector.join(
host = "localhost",
person = "username",
password = "YoUrPaSsWoRd",
database = "your_database"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clients (identify, deal with) VALUES (%s, %s)"
val = (
('Jack', 'New York'),
('Mary', 'Vancouver'),
('Peter', 'Cairo'),
('Sarah', 'Faro'),
('Stuart', 'London'),
('Hayley', 'Dubai')
)
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "was efficiently inserted")
Con esta técnica, podemos insertar varias filas en la misma consulta. Esto scale back la cantidad de conexiones a la base de datos y acelera el tiempo de confirmación.
Hablando de compromiso, tenga en cuenta que siempre llamamos al .commit()
una vez que hayamos terminado.
Cómo obtener la última identificación insertada de MySQL en Python
A menudo querrá obtener el ID de la última fila, también conocido como el ID de la fila que acaba de insertar.
Esto normalmente se hace creando un id
columna y asignando un auto_increment
a la columna
De esta manera, los números de identificación incrementales se asignarán a cada fila en la creación de filas de forma predeterminada.
import mysql.connector
mydb = mysql.connector.join(
host = "localhost",
person = "username",
password = "YoUrPaSsWoRd",
database = "your_database"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clients (identify, deal with) VALUES (%s, %s)"
val = ("Brad", "Los Angeles")
mycursor.execute(sql, val)
mydb.commit()
print("1 file inserted, ID:", mycursor.lastrowid)
Una vez más, cerramos usando el .commit()
y luego llamar al mycursor.lastrowid
que contiene el valor de la última fila insertada id
.