SQL 复杂查询更新插入

通过现有数据快速插入构造新数据

 1 INSERT INTO `merge`.`ods_binlog_traffic_vehicle_tracks` (
 2     `id`,
 3     `vehicle_no`,
 4     .
 5     .
 6     .
 7     `gps_datetime`,
 8     .
 9     .
10     .
11     `update_time`,
12     .
13     .
14     .
15 ) SELECT
16     CONCAT( id, 'C' ) AS id,
17     CONCAT( vehicle_no, '-1' ) AS `vehicle_no`,
18     .
19     .
20     .
21     NOW() AS `gps_datetime`,
22     .
23     .
24     .
25     NOW() AS `update_time`,
26     .
27     .
28     .
29 FROM
30     ods_binlog_traffic_vehicle_tracks 
31 WHERE
32     is_online = 2 
33     AND current_xzqh_id >= 120000 
34     AND current_xzqh_id <= 129999

 MySQL 插入场景的特殊语法

INSERT ... ON DUPLICATE KEY UPDATE 是 MySQL 中的一个特殊语法,它允许你尝试插入一行数据,但如果该行的主键或唯一键已经存在,则更新该行而不是插入新行。

这个语法通常用于以下场景:

避免重复插入:当你知道有可能插入重复的数据时,可以使用这个语法来确保不会插入重复的数据,而是更新已存在的数据。
插入或更新:在某些应用中,你可能希望有一个“插入或更新”的逻辑,即如果数据不存在,则插入;如果数据存在,则更新。

 

posted @ 2024-05-14 16:40  戒吧老哥助我一臂之力  阅读(8)  评论(0编辑  收藏  举报
跟随粒子特效