【发布时间】:2019-08-17 16:28:20
【问题描述】:
我想向表中插入数据,但我必须先从该表中“摆脱”并递增。我有这样的sql:
INSERT INTO users_items (rid, item_id, user_id, x, y, amount, item_value)
VALUES(?, ?, ?, ?, ?, ?, ?) SELECT MAX(rid)+1 as rid FROM users_items
这个 SQL 查询有什么问题?
【问题讨论】:
-
为什么不使用自动增量?
-
“这个 sql 查询有什么问题?” 可能很难调试竞态条件很可能发生在那个 SQL 代码中......就像@Jonnix 建议的那样使用自动增量,如果您需要在插入后选择它,请使用 SELECT LAST_INSERT_ID()..
-
您不能在 MySQL 中混合使用 VALUES 和 SELECT 语法。至少不是那样。