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避免了該問題並可以在任什麼時候候都拿到記錄IDide

缺陷:必須保證表初始化時有一條記錄,不然select .... limit 1查不出數據來,就沒法insertspa

相關文章
相關標籤/搜索