gpt4 book ai didi

sql - MySQL - 在两列上为 ON DUPLICATE KEY 创建 UNIQUE 索引

转载 作者:可可西里 更新时间:2023-11-01 07:03:07 26 4
gpt4 key购买 nike

我有一个包含 4 列的表格。我希望能够在创建时插入或更新值列(我不关心索引行 ID)。

CREAT TABLE tablename (
id, (primary)
user_id, (index)
setting_id, (index)
value (index)
);

最初我打算在每次要保存值时运行“REPLACE INTO...”查询。但后来我read about the problems而是选择了 INSERT INTO... ON DUPLICATE KEY UPDATE。

问题是我没有用于“INSERT INTO ... ON DUPLICATE KEY UPDATE”的单列来确定这是一个新行还是有一个现有行需要更新.

所以我想我会使用一个 UNIQUE 键,它是使该行唯一的两列的混合(

CREATE UNIQUE INDEX index_name ON table(user_id, setting_id);

但是,我不确定如何从这里前进。在尝试找出具有这两个列值的行时,我该如何构建我的查询以检查这个新的 INDEX?

INSERT INTO `tablename` (value, user_id, setting_id) VALUES (1,34,15) ON DUPLICATE KEY UPDATE

:编辑:

通过删除仅保留 (setting_id, user_id, & value) 的 ID 主列,我能够在 (setting_id, user_id) 上创建一个 PRIMARY 索引,然后以下查询有效。 more help here .

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;

关于sql - MySQL - 在两列上为 ON DUPLICATE KEY 创建 UNIQUE 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591698/

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