
mysql> truncate table t1;
Query OK, 0 rows affected (0.02 sec)
mysql> truncate table t2;
Query OK, 0 rows affected (0.03 sec)
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t1 values (1,1,1, CURRENT_TIMESTAMP);
Query OK, 1 row affected (0.01 sec)
mysql> replace into t2 select * from t1;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysqlbinlog binlog.000021 --base64-output=DECODE-ROWS -v |grep '`z`.'
#260107 14:45:44 server id 1 end_log_pos 366 CRC32 0x716ebe5f Table_map: `z`.`t1` mapped to number 594
### INSERT INTO `z`.`t1`
#260107 14:45:45 server id 1 end_log_pos 658 CRC32 0x74681c7f Table_map: `z`.`t2` mapped to number 595
### INSERT INTO `z`.`t2`mysql> insert into t1 values (2,2,2, CURRENT_TIMESTAMP);
Query OK, 1 row affected (0.01 sec)
mysql> replace into t2 select * from t1;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql>
mysql> select * from t1;
+----+------+------+---------------------+
| id | m | n | t |
+----+------+------+---------------------+
| 1 | 1 | 1 | 2026-01-07 14:45:44 |
| 2 | 2 | 2 | 2026-01-07 14:47:00 |
+----+------+------+---------------------+
2 rows in set (0.00 sec)
mysql>
mysql> select * from t2;
+----+------+------+---------------------+
| id | m | n | time |
+----+------+------+---------------------+
| 1 | 1 | 1 | 2026-01-07 14:45:44 |
| 2 | 2 | 2 | 2026-01-07 14:47:00 |
+----+------+------+---------------------+
2 rows in set (0.00 sec)
mysqlbinlog binlog.000021 --base64-output=DECODE-ROWS -v |grep '`z`.'
#260107 14:45:44 server id 1 end_log_pos 366 CRC32 0x716ebe5f Table_map: `z`.`t1` mapped to number 594
### INSERT INTO `z`.`t1`
#260107 14:45:45 server id 1 end_log_pos 658 CRC32 0x74681c7f Table_map: `z`.`t2` mapped to number 595
### INSERT INTO `z`.`t2`
#260107 14:47:00 server id 1 end_log_pos 953 CRC32 0x04894dd3 Table_map: `z`.`t1` mapped to number 594
### INSERT INTO `z`.`t1`
#260107 14:47:00 server id 1 end_log_pos 1245 CRC32 0x8d00490e Table_map: `z`.`t2` mapped to number 595
### INSERT INTO `z`.`t2`#260107 14:47:00 server id 1 end_log_pos 1245 CRC32 0x8d00490e Table_map: `z`.`t2` mapped to number 595
# has_generated_invisible_primary_key=0
# at 1245
#260107 14:47:00 server id 1 end_log_pos 1301 CRC32 0x103947fd Write_rows: table id 595 flags: STMT_END_F
### Extra row info for partitioning: partition: 1
### INSERT INTO `z`.`t2`
### SET
### @1=2
### @2=2
### @3=2
### @4='2026-01-07 14:47:00'
# at 1301
#260107 14:47:00 server id 1 end_log_pos 1332 CRC32 0xc183a77b Xid = 649006
COMMIT/*!*/;mysql> update t1 set m=11 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t1;
+----+------+------+---------------------+
| id | m | n | t |
+----+------+------+---------------------+
| 1 | 11 | 1 | 2026-01-07 14:45:44 |
| 2 | 2 | 2 | 2026-01-07 14:47:00 |
+----+------+------+---------------------+
2 rows in set (0.00 sec)
mysql>
mysql> replace into t2 select * from t1;
Query OK, 3 rows affected (0.00 sec)
Records: 2 Duplicates: 1 Warnings: 0
mysql> select * from t2;
+----+------+------+---------------------+
| id | m | n | time |
+----+------+------+---------------------+
| 1 | 11 | 1 | 2026-01-07 14:45:44 |
| 2 | 2 | 2 | 2026-01-07 14:47:00 |
+----+------+------+---------------------+
2 rows in set (0.00 sec)
mysqlbinlog binlog.000021 --base64-output=DECODE-ROWS -v |grep '`z`.'
#260107 14:45:44 server id 1 end_log_pos 366 CRC32 0x716ebe5f Table_map: `z`.`t1` mapped to number 594
### INSERT INTO `z`.`t1`
#260107 14:45:45 server id 1 end_log_pos 658 CRC32 0x74681c7f Table_map: `z`.`t2` mapped to number 595
### INSERT INTO `z`.`t2`
#260107 14:47:00 server id 1 end_log_pos 953 CRC32 0x04894dd3 Table_map: `z`.`t1` mapped to number 594
### INSERT INTO `z`.`t1`
#260107 14:47:00 server id 1 end_log_pos 1245 CRC32 0x8d00490e Table_map: `z`.`t2` mapped to number 595
### INSERT INTO `z`.`t2`
#260107 14:48:11 server id 1 end_log_pos 1541 CRC32 0x5c8ff983 Table_map: `z`.`t1` mapped to number 594
### UPDATE `z`.`t1`
#260107 14:48:11 server id 1 end_log_pos 1852 CRC32 0xf82e7121 Table_map: `z`.`t2` mapped to number 595
### UPDATE `z`.`t2`mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
mysql> create table d1 (id int primary key ,m int,n int ,t datetime);
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> create table d2 (id int ,m int ,n int,time datetime default CURRENT_TIMESTAMP, PRIMARY KEY (id,time))
-> PARTITION BY RANGE(TO_DAYS (time))
-> (
-> PARTITION p1 VALUES LESS THAN (TO_DAYS('2026-01-01')),
-> PARTITION p2 VALUES LESS THAN (TO_DAYS('2026-02-01')),
-> PARTITION p3 VALUES LESS THAN (TO_DAYS('2026-03-01')));
Query OK, 0 rows affected (0.03 sec)mysql> insert into d1 (id,m,n) values (1,1,1);
Query OK, 1 row affected (0.01 sec)
mysql> replace into d2 (id ,m,n) select id ,m,n from d1;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from d1;
+----+------+------+------+
| id | m | n | t |
+----+------+------+------+
| 1 | 1 | 1 | NULL |
+----+------+------+------+
1 row in set (0.00 sec)
mysql> replace into d2 (id ,m,n) select id ,m,n from d1;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from d2;
+----+------+------+---------------------+
| id | m | n | time |
+----+------+------+---------------------+
| 1 | 1 | 1 | 2026-01-07 16:15:16 |
| 1 | 1 | 1 | 2026-01-07 16:15:38 |
+----+------+------+---------------------+
2 rows in set (0.00 sec)mysql> select * from d1; ±—±-----±-----±-----+ | id | m | n | t | ±—±-----±-----±-----+ | 1 | 1 | 1 | NULL | ±—±-----±-----±-----+ 1 row in set (0.00 sec)
mysql> update d1 set t=‘2026-01-07 00:00:00’ ; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from d1; ±—±-----±-----±--------------------+ | id | m | n | t | ±—±-----±-----±--------------------+ | 1 | 1 | 1 | 2026-01-07 00:00:00 | ±—±-----±-----±--------------------+ 1 row in set (0.00 sec)
mysql> replace into d2 (id ,m,n,time) select id ,m,n,t from d1; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from d2; ±—±-----±-----±--------------------+ | id | m | n | time | ±—±-----±-----±--------------------+ | 1 | 1 | 1 | 2026-01-07 00:00:00 | | 1 | 1 | 1 | 2026-01-07 16:15:16 | | 1 | 1 | 1 | 2026-01-07 16:15:38 | | 1 | 1 | 1 | 2026-01-07 16:30:34 | ±—±-----±-----±--------------------+ 4 rows in set (0.00 sec)
mysql> update d1 set t=‘2026-01-08 00:00:00’ ; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from d1; ±—±-----±-----±--------------------+ | id | m | n | t | ±—±-----±-----±--------------------+ | 1 | 1 | 1 | 2026-01-08 00:00:00 | ±—±-----±-----±--------------------+ 1 row in set (0.01 sec)
mysql> replace into d2 (id ,m,n,time) select id ,m,n,t from d1; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from d2; ±—±-----±-----±--------------------+ | id | m | n | time | ±—±-----±-----±--------------------+ | 1 | 1 | 1 | 2026-01-07 00:00:00 | | 1 | 1 | 1 | 2026-01-07 16:15:16 | | 1 | 1 | 1 | 2026-01-07 16:15:38 | | 1 | 1 | 1 | 2026-01-07 16:30:34 | | 1 | 1 | 1 | 2026-01-08 00:00:00 | ±—±-----±-----±--------------------+ 5 rows in set (0.01 sec)
# 主要是实在没想过会有人去这样用replace into。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。