MySQL插入并更新

发布于:2024-06-22 ⋅ 阅读:(123) ⋅ 点赞:(0)


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;


网站公告

今日签到

点亮在社区的每一天
去签到