码迷,mamicode.com
首页 > 数据库 > 详细

Mysql insert without auto-increase when duplicate

时间:2014-10-22 14:15:11      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   数据   div   on   问题   

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

Mysql insert without auto-increase when duplicate

标签:style   blog   color   使用   sp   数据   div   on   问题   

原文地址:http://www.cnblogs.com/yangyh/p/4042928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!