[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);
浙公网安备 33010602011771号