我有一个表设置(很像wordpress) usermeta
表),允许为给定用户存储键和值。
ID UserID MetaKey MetaValue ID
是主列,自动递增列, UserID
是一个 INT
用户id的值。
我当前的insert语句如下所示:
INSERT INTO user_meta (`UserID`, `MetaKey`, `MetaValue`) VALUES
(5, firstkey, firstvalue),
(5, secondkey, secondvalue)
这在插入新值时起作用,但是如何更新查询,以便如果存在 UserID
以及 MetaKey
如果值与要插入的值匹配,则更新现有值 MetaValue
而不是插入新行?
1条答案
按热度按时间dtcbnfnu1#
首先,您需要为userid和metakey组合定义一个唯一的约束:
注意:如果表中已经有userid和metakey值的非唯一组合,则无法添加约束。
在表具有约束后,如果userid和metakey是唯一的,则将插入以下查询,否则将更新找到的组合的metavalue: