【发布时间】:2022-07-10 02:34:44
【问题描述】:
我想知道是否有办法获取使用ON DUPLICATE KEY UDATE 更新的记录 ID。
例如,我的users 表具有以下架构:
CREATE TABLE `users` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx-users-email` (`email`)
);
并插入一些用户:
INSERT INTO users (email, username) VALUES ("pioz@example.org", "pioz"),("luke@example.org", "luke"),("mike@example.org", "mike");
结果是:
+----+------------------+----------+
| id | email | username |
+----+------------------+----------+
| 1 | pioz@example.org | pioz |
| 2 | luke@example.org | luke |
| 3 | mike@example.org | mike |
+----+------------------+----------+
现在我想知道是否可以通过如下查询获得更新记录的 ID:
INSERT INTO users (email, username) VALUES ("luke@example.org", "luke2"),("mike@example.org", "mike2") ON DUPLICATE KEY UPDATE username=VALUES(username);
在此示例中,ID 为 2 和 3。
【问题讨论】:
-
This question 类似,并显示在this answer 上,使用 MySQL 变量收集此类数据。