MySQL是一种关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据操作。插入数据是数据库操作中最基本的操作之一。
以下是一个使用Python和MySQL Connector库进行批量插入数据的示例:
import mysql.connector
# 连接到MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 创建游标对象
mycursor = mydb.cursor()
# 插入数据的SQL语句
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
# 插入的数据
val = [
('John', 'Highway 21'),
('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, "条记录已插入。")
Duplicate entry
错误原因:尝试插入的数据已经存在于数据库中。
解决方法:
INSERT IGNORE
语句忽略重复的插入。ON DUPLICATE KEY UPDATE
语句更新已存在的数据。INSERT INTO customers (name, address) VALUES (%s, %s)
ON DUPLICATE KEY UPDATE address=VALUES(address);
Data too long
错误原因:插入的数据超过了字段定义的长度。
解决方法:
ALTER TABLE customers MODIFY COLUMN address VARCHAR(255);
Access denied
错误原因:当前用户没有足够的权限执行插入操作。
解决方法:
GRANT INSERT ON yourdatabase.customers TO 'yourusername'@'localhost';
通过以上信息,你应该能够理解MySQL插入数据的基础概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云