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 (...), (...), (...) 而不是循环单条插入。
posted @ 2026-08-31 23:04  IT_IOS_MAN  阅读(13)  评论(0)    收藏  举报