gpt4 book ai didi

mysql - 在 MySQL 中使用 REPLACE 实际上并不是替换行

转载 作者:行者123 更新时间:2023-11-29 06:43:20 24 4
gpt4 key购买 nike

这是我当前的表格,其中包含一些行:

CREATE TABLE `user_versus` (
`id_user_versus` int(11) NOT NULL AUTO_INCREMENT,
`id_user_winner` int(10) unsigned NOT NULL,
`id_user_loser` int(10) unsigned NOT NULL,
`id_user` int(10) unsigned NOT NULL,
`date_versus` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_user_versus`),
KEY `id_user_winner` (`id_user_winner`,`id_user_loser`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

INSERT INTO `user_versus` (`id_user_versus`, `id_user_winner`, `id_user_loser`, `id_user`, `date_versus`) VALUES
(1, 6, 7, 1, '2013-10-25 23:02:57'),
(2, 6, 8, 1, '2013-10-25 23:02:57'),
(3, 6, 9, 1, '2013-10-25 23:03:04'),
(4, 6, 10, 1, '2013-10-25 23:03:04'),
(5, 6, 11, 1, '2013-10-25 23:03:10'),
(6, 6, 12, 1, '2013-10-25 23:03:10'),
(7, 6, 13, 1, '2013-10-25 23:03:18'),
(8, 6, 14, 1, '2013-10-25 23:03:18'),
(9, 7, 6, 2, '2013-10-26 04:02:57'),
(10, 8, 6, 2, '2013-10-26 04:02:57'),
(11, 9, 8, 2, '2013-10-26 04:03:04'),
(12, 9, 10, 2, '2013-10-26 04:03:04'),
(13, 9, 11, 2, '2013-10-26 04:03:10');

现在,我想用这个查询插入或替换最后一行:

REPLACE INTO user_versus (id_user_winner, id_user_loser, id_user) VALUES (9, 14, 2)

当我这样做时,不是替换最后一行(包含这些精确值),而是添加一个新行。为什么?谢谢!

最佳答案

这是因为您没有在插入中指定主键,即 id_user_versus

也许您打算在 id_user_winnerid_user_loser 之间使用一个唯一的键(而不仅仅是一个标准键),在这种情况下,您的替换可以用那些替换行值(value)观。

关于mysql - 在 MySQL 中使用 REPLACE 实际上并不是替换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com