你可以使用它。它插入或更新记录。您只需要在 rand 上有一个唯一的 INDEX 或 PRIMARY KEY。
INSERT INTO Table_2
(SELECT * FROM Table_1 )
ON DUPLICATE KEY UPDATE cpn = VALUES(cpn);
示例
MariaDB []>
MariaDB []> CREATE TABLE `Table_1` (
-> `rand` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
-> `cpn` INT(11) DEFAULT NULL,
-> PRIMARY KEY (`rand`)
-> ) ENGINE=INNODB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.16 sec)
MariaDB []>
MariaDB []> INSERT INTO `Table_1` (`rand`, `cpn`)
-> VALUES
-> (1, 4),
-> (2, 7),
-> (3, 2),
-> (4, 1),
-> (5, 7);
Query OK, 5 rows affected (0.02 sec)
Records: 5 Duplicates: 0 Warnings: 0
MariaDB []>
MariaDB []>
MariaDB []> CREATE TABLE `Table_2` (
-> `rand` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
-> `cpn` INT(11) DEFAULT NULL,
-> PRIMARY KEY (`rand`)
-> ) ENGINE=INNODB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.30 sec)
MariaDB []>
MariaDB []> INSERT INTO `Table_2` (`rand`, `cpn`)
-> VALUES
-> (1, 0),
-> (2, 0),
-> (3, 0),
-> (4, 0),
-> (5, 0);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
MariaDB []>
MariaDB []>
MariaDB []> SELECT * FROM Table_1;
+------+------+
| rand | cpn |
+------+------+
| 1 | 4 |
| 2 | 7 |
| 3 | 2 |
| 4 | 1 |
| 5 | 7 |
+------+------+
5 rows in set (0.00 sec)
MariaDB []>
MariaDB []> SELECT * FROM Table_2;
+------+------+
| rand | cpn |
+------+------+
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
+------+------+
5 rows in set (0.00 sec)
MariaDB []>
MariaDB []> INSERT INTO Table_2
-> (SELECT * FROM Table_1 )
-> ON DUPLICATE KEY UPDATE cpn = VALUES(cpn);
Query OK, 10 rows affected (0.00 sec)
Records: 5 Duplicates: 5 Warnings: 0
MariaDB []>
MariaDB []> SELECT * FROM Table_2;
+------+------+
| rand | cpn |
+------+------+
| 1 | 4 |
| 2 | 7 |
| 3 | 2 |
| 4 | 1 |
| 5 | 7 |
+------+------+
5 rows in set (0.00 sec)
MariaDB []>