首页 > 代码库 > Mysql insert without auto-increase when duplicate
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 NULLLIMIT 1;SELECT LAST_INSERT_ID();
背景:使用insert ignore或insert ... on duplicate key update,都会使自增字段加1,造成不必要的数据空洞,上面的SQL避免了该问题并能够在任何时候都拿到记录ID
缺陷:必须保证表初始化时有一条记录,否则select .... limit 1查不出数据来,就无法insert
Mysql insert without auto-increase when duplicate
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。