MYSQL:如果已经存在则插入记录更新记录 [英] MYSQL: Insert record if it is already exists update record

查看:59
本文介绍了MYSQL:如果已经存在则插入记录更新记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果记录存在,我需要更新记录,否则将其插入.我已经尝试过以前的相关答案,但这些还不够

I have a requirement to update a record if it exists else insert it. I already tried previous related answers but those are not sufficient

我有一个带有 data_meta 的表名

I have a table name with data_meta

meta_id   |    token   |   meta_key   |   meta_value
1                 1     terms_conditions    terms conditions content
2                 1     is_config_enable       1
3                 2     terms_conditions    terms conditions content

我必须根据令牌进行更新 &meta_key .. 对于同一个令牌 meta_key 不重复..

I have to update based on token & meta_key.. For same token meta_key doesn't repeat..

我的插入查询

"INSERT INTO data_meta (token, meta_key, meta_value)
                        VALUES (" . $token . ", '" . $key . "', '" . $value . "')";

我的更新查询

 "UPDATE data_meta  SET  meta_value = '" . $value . "' WHERE  meta_key = '" . $key . "' AND token=" . $token ;

推荐答案

create uniqe index on (token, meta_key) 如果不存在:

create uniqe index on (token, meta_key) If not exists:

create unique index data_meta_tm on data_meta(token, meta_key);

查询:

"INSERT INTO data_meta (token, meta_key, meta_value)
                        VALUES (" . $token . ", '" . $key . "', '" . $value . "')
     ON DUPLICATE KEY UPDATE meta_value = VALUES(meta_value)";

这篇关于MYSQL:如果已经存在则插入记录更新记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆