INSERT
这是向表中添加新记录的操作。MySQL 支持单行插入和多行批量插入。
基本语法
-- 单行插入:指定列
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
-- 单行插入:全列插入(值顺序需与表结构一致)
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
-- 批量插入(效率更高推荐)
INSERT INTO table_name (column1, column2)
VALUES
(val1_1, val1_2),
(val2_1, val2_2),
(val3_1, val3_2);
高级场景:处理冲突
如果插入的数据主键或唯一索引已存在,可以使用 ON DUPLICATE KEY UPDATE 进行更新而非报错:
INSERT INTO users (id, username, email)
VALUES (1, 'john', 'john@example.com')
ON DUPLICATE KEY UPDATE
email = VALUES(email),
updated_at = NOW();
特殊场景:JSON 字段
MySQL 5.7+ 支持 JSON 类型,可以直接对 JSON 内部字段进行局部更新,无需取出整个 JSON 修改后再存回。
修改 JSON 内部值
使用 JSON_SET、JSON_INSERT 或 JSON_REPLACE 函数:
-- 假设 info 字段存储的是 JSON: {"name": "Laravel", "version": "8"}
-- 插入新键值对(如果键不存在则插入,存在则忽略)
UPDATE apps
SET info = JSON_INSERT(info, '$.author', 'Taylor')
WHERE id = 1;
性能优化
- 批量插入:尽量使用 INSERT INTO ... VALUES (...), (...), (...) 而不是循环单条插入。

浙公网安备 33010602011771号