Python Insert Into Table
插入表
如需填充 MySQL 中的表,请使用 "INSERT INTO" 语句。
实例
在表 "customers" 中插入记录:
- import mysql.connector
- mydb = mysql.connector.connect(
- host="localhost",
- user="yourusername",
- passwd="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() 方法的第二个参数是元组列表,包含要插入的数据:
实例
用数据填充 "customers" 表:
- import mysql.connector
- mydb = mysql.connector.connect(
- host="localhost",
- user="yourusername",
- passwd="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
您可以通过询问 cursor 对象来获取刚插入的行的 id。
注释:如果插入不止一行,则返回最后插入行的 id。
实例
插入一行,并返回 id:
- import mysql.connector
- mydb = mysql.connector.connect(
- host="localhost",
- user="yourusername",
- passwd="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)