gpt4 book ai didi

mysql - 如何在 SQL 中使用 ON DUPLICATE KEY 更新

转载 作者:行者123 更新时间:2023-11-29 09:24:35 25 4
gpt4 key购买 nike

INSERT INTO policy_consent_status (patien_ID,policy_ID,PS_ID)
VALUES
((SELECT patient_ID FROM patient WHERE first_name="Christine"),(SELECT policy_ID
FROM policy WHERE policy_name="PI"),6)
ON DUPLICATE KEY
UPDATE
patien_ID = VALUES((SELECT patient_ID FROM patient WHERE first_name="Christine")),
policy_ID = VALUES((SELECT policy_ID FROM policy WHERE policy_name="PI"))
PS_ID = 6

我必须插入新内容并更新现有

最佳答案

ON DUPLICATE KEY UPDATE中,VALUES的参数必须是列的名称;它返回将插入到新行中的值。如果您想使用其他值,只需将表达式放在那里,不带 VALUES

但是您不需要多个子查询。使用 SELECT 查询作为要插入的值的来源。

此外,您不需要分配属于唯一键的列的值,只需分配要更新的列即可。我假设您的表中的唯一键是 patent_idpolicy_id 的组合。

INSERT INTO policy_consent_status (patient_ID,policy_ID,PS_ID)
SELECT patient_id, policy_id, 6
FROM patient
CROSS JOIN policy
WHERE first_name="Christine"
AND policy_name="PI"
ON DUPLICATE KEY UPDATE PS_ID = VALUES(PS_ID)

关于mysql - 如何在 SQL 中使用 ON DUPLICATE KEY 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818414/

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