MySQL是一种关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据管理。向MySQL表中写入数据通常涉及插入(INSERT)操作。
INSERT INTO
语句插入单行数据。INSERT INTO
语句同时插入多行数据。-- 插入单行数据
INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 30);
-- 插入多行数据
INSERT INTO users (username, email, age) VALUES
('jane_doe', 'jane@example.com', 28),
('alex_smith', 'alex@example.com', 35);
-- 批量插入示例(使用事务)
START TRANSACTION;
INSERT INTO logs (user_id, action, timestamp) VALUES
(1, 'login', NOW()),
(2, 'view_page', NOW()),
(1, 'logout', NOW());
COMMIT;
Duplicate entry
错误原因:尝试插入的数据违反了唯一性约束,例如主键或唯一索引。
解决方法:
INSERT IGNORE
或ON DUPLICATE KEY UPDATE
语句处理重复键错误。-- 使用INSERT IGNORE
INSERT IGNORE INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 30);
-- 使用ON DUPLICATE KEY UPDATE
INSERT INTO users (username, email, age)
VALUES ('john_doe', 'john@example.com', 30)
ON DUPLICATE KEY UPDATE age = 30;
Data too long
错误原因:尝试插入的数据超过了字段定义的最大长度。
解决方法:
-- 修改表结构示例
ALTER TABLE users MODIFY COLUMN email VARCHAR(255);
Access denied
错误原因:当前用户没有足够的权限执行插入操作。
解决方法:
-- 授予权限示例
GRANT INSERT ON database_name.users TO 'user'@'localhost';
领取专属 10元无门槛券
手把手带您无忧上云