gpt4 book ai didi

mysql - 如果存在多个唯一索引(MySQL),则插入表或更新

转载 作者:搜寻专家 更新时间:2023-10-30 23:47:24 25 4
gpt4 key购买 nike

我遇到一个问题,如果组合(poll_id、user_id、question_id)不存在,我想将值插入到表中,否则我想更新列答案。

表格如下:

投票结果poll_id - int(11) | user_id - int(11) | question_id - int(11) |答案 - varchar(100)

我已将唯一设置为 (poll_id, user_id, question_id) 使用:

ALTER TABLE poll_results ADD UNIQUE INDEX unique_index(poll_id, user_id, question_id);

当我运行以下查询时,它将首先插入第一个值集,然后使用第二个值集中的值更新答案字段。

INSERT INTO poll_results (poll_id, user_id, question_id, answer) VALUES(1, 1, 1, 'User 1'),(1, 2, 1, 'User 2') 在重复 key 更新时 answer=VALUES(answer )

我看到的是:

poll_id - user_id - question_id - answer

1 | 1 | 1 |用户 1

我想看到的是:

民意调查用户 ID |问题编号 |回答

1 | 1 | 1 |用户 1

1 | 2 | 1 |用户 2

我怎样才能达到最终结果?

最佳答案

ON DUPLICATE KEY 功能的工作方式是触发任何 UNIQUE 类型的索引,而不仅仅是您打算触发的索引。

删除任何可能干扰此操作的索引,您应该没问题。

关于mysql - 如果存在多个唯一索引(MySQL),则插入表或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721691/

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