Mysql实现数据的不重复写入(insert if not exists)以及新问题I
Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
最近做数据处理时候,遇到一个问题。用一个id自增主键时候,数据表中会插入大量重复数据(除ID不同)。这虽然对最终数据处理结果没有影响,但是有1个问题,如果数据量超大,对处理的速度影响成几何倍数增长!所以必须找到不重复插入的方法。
谷歌之:大量bolg有相关资料,但都是
INSERT INTO users_roles (userid, roleid) SELECT 'userid_x', 'roleid_x' FROM dual WHERE NOT EXISTS (SELECT * FROM users_roles WHERE userid = 'userid_x' AND roleid = 'roleid_x');这样的sql语句,尝试,不能解决问题。sql语法错误!
果断找官方文档,于mysql5.6版本查看到的insert文档如下图:
online help insert文档地址为:http://dev.mysql.com/doc/refman/5.6/en/insert.html
5.6版本的官方文档中没有以上语法了,这有三种插入语句。分别分析。
【With INSERT ... SELECT, you can quickly insert many rows into a table from one or many tables.不能从本表查询插入本表】
Or:
You can