MySQL插入并更新


1. 基本批量插入

INSERT INTO table_name (column1, column2)
VALUES 
('value1_1', 'value1_2'),
('value2_1', 'value2_2'),
('value3_1', 'value3_2');

2. 批量插入并更新(Upsert)

  1. 这个语法表示如果 column1 是唯一键或主键,当插入操作遇到重复值时,会更新 column2 的值。
INSERT INTO table_name (column1, column2)
VALUES 
('value1_1', 'value1_2'),
('value2_1', 'value2_2'),
('value3_1', 'value3_2')
ON DUPLICATE KEY UPDATE
column2 = VALUES(column2);

3. 批量插入忽略已存在的数据

  • 当遇到重复键时,INSERT IGNORE 会跳过该行的插入操作,而不会抛出错误。
INSERT IGNORE INTO table_name (column1, column2)
VALUES 
('value1_1', 'value1_2'),
('value2_1', 'value2_2'),
('value3_1', 'value3_2');

4. 替换插入(Replace)

  • REPLACE INTO 会尝试插入新行。如果发现已有行与新行冲突(基于主键或唯一键),则先删除旧行,然后插入新行。
REPLACE INTO table_name (column1, column2)
VALUES 
('value1_1', 'value1_2'),
('value2_1', 'value2_2'),
('value3_1', 'value3_2');

5.从一个表中选择数据并插入到另一个表中

插入 table2 中满足某个条件的行
INSERT INTO table1 (column1, column2)
SELECT column1, column2
FROM table2
WHERE column3 = 'some_value';


#插入并更新(Upsert)
INSERT INTO table1 (column1, column2)
SELECT column1, column2
FROM table2
ON DUPLICATE KEY UPDATE
table1.column2 = VALUES(column2);



#插入并忽略已存在的数据
INSERT INTO table1 (column1, column2)
SELECT column1, column2
FROM table2
ON DUPLICATE KEY UPDATE
table1.column2 = VALUES(column2);



#插入并替换
REPLACE INTO table1 (column1, column2)
SELECT column1, column2
FROM table2;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值