我需要为插入或更新某些字段编写一个MySQL查询。我看过ON DUPLICATE KEY,但我的字段不是PRIMARY KEY或UNIQUE,只有组合是唯一的。以下是字段列表:
ID (主键AUTOINCREMENT BIGINT)、用户(BIGINT)、创建者(BIGINT)、类型(TINYINT)、值(BIGINT)、日期(INT)、读取(TINYINT)、擦除(TINYINT)。
表名是通知(如果可以的话)。如果用户、创建者、类型、值都与要插入的值相同(如AND),则需要插入新记录或更新现有记录。我怎么能这么做?
发布于 2014-12-04 22:55:10
可以在变量上创建唯一的索引。我不确定哪些变量是问题中的变量,但这里有一个例子:
create unique index idx_table_user_creator_type on table(user, creator, type)您也可以在create table语句中使用unique约束的语法来实现这一点。
然后,将该约束用作:
insert into table(user, creator, type, col1, . . .)
values(@user, @creator, @type, . . .)
on duplicate key update col1 = values(col1),
col2 = values(col2),
. . . ;https://stackoverflow.com/questions/27305510
复制相似问题