[英]INSERT OR UPDATE if record already exists MySQL
我需要編寫一個MySQL查詢來插入或更新某些字段。 我已經了解過ON DUPLICATE KEY
,但是我的字段不是PRIMARY KEY
或UNIQUE
,只有組合是唯一的。 這是字段列表:
ID(主鍵自動增加BIGINT),用戶(BIGINT),創建者(BIGINT),類型(TINYINT),值(BIGINT),日期(INT),已讀取(TINYINT),已擦除(TINYINT)。
表名是通知(如果有用)。 如果用戶,創建者,類型,值都與要插入的值相同(例如AND
),則需要插入一條新記錄或更新現有記錄。 我該怎么做?
您可以在變量上創建唯一索引。 我不確定哪個是有問題的變量,但這是一個示例:
create unique index idx_table_user_creator_type on table(user, creator, type)
您也可以使用unique
約束的語法在create table
語句中執行此操作。
然后,您將約束用作:
insert into table(user, creator, type, col1, . . .)
values(@user, @creator, @type, . . .)
on duplicate key update col1 = values(col1),
col2 = values(col2),
. . . ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.