Mysql寫入時如果唯一、索引,則更新該行..

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

或:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

或:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]註釋 :INSERT

用於向一個已有的表中插入新行。INSERT...VALUES

和INSERT...SET

形式的語句根據明確指定的值插入行。INSERT...SELECT

形式的語句插入從其它表中選出的行

       如果指定了ON DUPLICATE KEY UPDATE ,並且插入行後會導致在一個UNIQUE 索引或PRIMARY KEY 中出現重複值,則執行舊行UPDATE 。例如,如果列a 被定義爲UNIQUE ,並且包含值1 ,則以下兩個語句具有相同的效果:

mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
    -> ON DUPLICATE KEY UPDATE c=c+1;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章