Mysql insert without auto-increase when duplicate
INSERT INTO video_tag_all(tagname,ctime) SELECT ‘利物浦‘,1413954816 FROM video_tag_all WHERE (SELECT last_insert_id(id) FROM video_tag_all WHERE tagname=‘利物浦‘) IS NULL LIMIT 1; SELECT LAST_INSERT_ID();
背景:使用insert ignore或insert ... on duplicate key update,都会使自增字段加1,造成不必要的数据空洞,上面的SQL避免了该问题并能够在任何时候都拿到记录ID
缺陷:必须保证表初始化时有一条记录,否则select .... limit 1查不出数据来,就无法insert
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。