Python MySQL вставить в таблицу
Вставить в таблицу
Чтобы заполнить таблицу в MySQL, используйте оператор «INSERT INTO».
Пример
Вставьте запись в таблицу «клиенты»:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name,
address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql,
val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
Важно! Обратите внимание на утверждение:
mydb.commit()
. Необходимо внести изменения, иначе в таблицу не вносятся никакие изменения.
Вставить несколько строк
Чтобы вставить несколько строк в таблицу, используйте
executemany()
метод.
Второй параметр executemany()
метода — это список кортежей, содержащих данные, которые вы хотите вставить:
Пример
Заполните таблицу «клиенты» данными:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name,
address) VALUES (%s, %s)"
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "was inserted.")
Получить вставленный идентификатор
Вы можете получить идентификатор строки, которую вы только что вставили, запросив объект курсора.
Примечание. Если вы вставляете более одной строки, возвращается идентификатор последней вставленной строки.
Пример
Вставьте одну строку и верните идентификатор:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name,
address) VALUES (%s, %s)"
val = ("Michelle", "Blue Village")
mycursor.execute(sql, val)
mydb.commit()
print("1 record
inserted, ID:", mycursor.lastrowid)