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.")
รับการแทรก ID
คุณสามารถรับรหัสของแถวที่คุณเพิ่งแทรกโดยถามวัตถุเคอร์เซอร์
หมายเหตุ:หากคุณแทรกมากกว่าหนึ่งแถว รหัสของแถวที่แทรกล่าสุดจะถูกส่งคืน
ตัวอย่าง
แทรกหนึ่งแถวแล้วส่งคืน ID:
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)