我需要编写一个MySQL查询来插入或更新一些字段。我见过ON DUPLICATE KEY
,但我的字段不是PRIMARY KEY
或UNIQUE
,只有组合是唯一的。这是字段列表:
ID(PRIMARY KEY AUTOINCREMENT BIGINT),用户(BIGINT),创建者(BIGINT),类型(TINYINT),值(BIGINT),日期(INT),readed(TINYINT),擦除(TINYINT)。
表名是通知(如果它有用)。如果用户,创建者,类型,值与要插入的值完全相同(如AND
),我需要插入新记录或更新现有记录。我怎么能这样做?
答案 0 :(得分:0)
您可以在变量上创建唯一索引。我不确定哪个变量有问题,但这是一个例子:
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),
. . . ;