MySQL-在两列上为重复键创建唯一索引
我有一个4列的表。我希望能够在创建时插入或更新value列(我不关心索引行ID) 最初,每次我想保存一个值时,我都要运行一个“替换为…”查询。但后来我选择了插入到。。。在重复密钥更新时 问题是,我没有“在重复密钥更新时插入到…中”的单列来确定这是新行还是需要更新现有行 所以我想我会使用一个唯一的键,它是使此行唯一的两列的混合( 但是,我不知道如何从这里开始。当我试图找出一行已经存在且具有这两个列值时,如何构造查询以检查这个新索引MySQL-在两列上为重复键创建唯一索引,sql,mysql,Sql,Mysql,我有一个4列的表。我希望能够在创建时插入或更新value列(我不关心索引行ID) 最初,每次我想保存一个值时,我都要运行一个“替换为…”查询。但后来我选择了插入到。。。在重复密钥更新时 问题是,我没有“在重复密钥更新时插入到…中”的单列来确定这是新行还是需要更新现有行 所以我想我会使用一个唯一的键,它是使此行唯一的两列的混合( 但是,我不知道如何从这里开始。当我试图找出一行已经存在且具有这两个列值时,如何构造查询以检查这个新索引 INSERT INTO `tablename` (value, u
INSERT INTO `tablename` (value, user_id, setting_id) VALUES (1,34,15) ON DUPLICATE KEY UPDATE
:编辑:
通过删除只留下的ID主列(设置\ ID、用户\ ID和值),我能够在(设置\ ID、用户\ ID)上创建一个主索引,然后下面的查询工作了
你的查询结果会是这样的
INSERT INTO table (value,user_id,setting_id) VALUES (1,34,15)
ON DUPLICATE KEY UPDATE value = 1, user_id = 34, setting_id = 15;
INSERT INTO `tablename` (value, user_id, setting_id) VALUES (1,34,15) ON DUPLICATE KEY UPDATE
INSERT INTO tablename (user_id, setting_id, value)
VALUES (42, 1, 12)
ON DUPLICATE KEY UPDATE value = 12
INSERT INTO table (value,user_id,setting_id) VALUES (1,34,15)
ON DUPLICATE KEY UPDATE value = 1, user_id = 34, setting_id = 15;