[MYSQL补课之一] replace into , insert into ... on duplicated key

基础还很差。补补课吧

最近需要将每日定时推送的文件,有约1000条记录入库。但是记录可能在库里已经存在的情况。

表结构有一个primary key, 有四个key。 期间也搜过: key, index, unique index, primary key的联系。

1.replace into

  a.需要应用在有一个primary key 或 uniqe index的情况,否则无意义

  b.replace 如无key冲突,跟insert一样;

     如遇key冲突, 会先删掉,再添加

  c.replace执行返回 影响的行数,==1则是添加, >1则是替换, 有可能会替换多行

  d.如果有自增列,频繁replace,会导致id暴增,最后超过限制....

2. insert into .... on duplicated key update....

  a. primary或者unique重复时,执行update语句,如update后为无用语句,如id=id,则同insert ignore into,但错误不会被忽略

  c. 为mysql特有语法,不是sql标准语法

  d.后续再看吧....

     a)insert ignore into ,忽略插入时的报错,以警告形式返回。 请确保语句无误,否则不会报任何错

     b) insert ....select, 

     c) insert delayed into

 

3.mysql 的replace函数 

replace(object , search, replace);

   

 

posted on 2012-12-04 11:56  Suein  阅读(365)  评论(0)    收藏  举报