簡體   English   中英

如果記錄已經存在,則插入或更新MySQL

[英]INSERT OR UPDATE if record already exists MySQL

我需要編寫一個MySQL查詢來插入或更新某些字段。 我已經了解過ON DUPLICATE KEY ,但是我的字段不是PRIMARY KEYUNIQUE ,只有組合是唯一的。 這是字段列表:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM