首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果记录已经存在,则插入或更新MySQL

问如果记录已经存在,则插入或更新MySQL
EN

Stack Overflow用户
提问于 2014-12-04 22:36:56
回答 1查看 786关注 0票数 0

我需要为插入或更新某些字段编写一个MySQL查询。我看过ON DUPLICATE KEY,但我的字段不是PRIMARY KEY或UNIQUE,只有组合是唯一的。以下是字段列表:

ID (主键AUTOINCREMENT BIGINT)、用户(BIGINT)、创建者(BIGINT)、类型(TINYINT)、值(BIGINT)、日期(INT)、读取(TINYINT)、擦除(TINYINT)。

表名是通知(如果可以的话)。如果用户、创建者、类型、值都与要插入的值相同(如AND),则需要插入新记录或更新现有记录。我怎么能这么做?

EN

回答 1

Stack Overflow用户

发布于 2014-12-04 22:55:10

可以在变量上创建唯一的索引。我不确定哪些变量是问题中的变量,但这里有一个例子:

代码语言:javascript
复制
create unique index idx_table_user_creator_type on table(user, creator, type)

您也可以在create table语句中使用unique约束的语法来实现这一点。

然后,将该约束用作:

代码语言:javascript
复制
insert into table(user, creator, type, col1, . . .)
    values(@user, @creator, @type, . . .)
    on duplicate key update col1 = values(col1),
                            col2 = values(col2),
                            . . . ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27305510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档