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