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;

你可能感兴趣的:(索引,数据库管理系统,Mysql写入时如果唯一,则更新该行..)