取最后插入的 id要点
- SELECT LAST_INSERT_ID() 取本连接最后的自增 id
- 它是连接级别的,高并发下不同连接不会串号
- 批量插入时只返回第一行的自增 id,不是最后一行
- 各语言驱动也有对应接口,如 mysqli_insert_id
- 必须紧跟插入语句在同一条连接里调用
- 用它写关联表,避免再查一遍 MAX(id) 这种不安全写法
取最后插入的 id示例
INSERT INTO orders (user_id, amount) VALUES (12, 299);
-- 拿到刚插入的订单 id
SELECT LAST_INSERT_ID();
-- 用返回的 id 写订单明细
INSERT INTO order_item (order_id, sku, qty)
VALUES (LAST_INSERT_ID(), 'A102', 2);
避坑提醒:千万别用 SELECT MAX(id) 当最后插入 id——并发插入时 Max(id) 早被别人占走,用 LAST_INSERT_ID() 才是连接安全的做法。