我想向表中插入数据,但是我必须先从该表中获取“ rid”并递增。我有这样的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查询有什么问题?
答案 0 :(得分:0)
不清楚您到底想做什么。
听起来您正在尝试构建自己的auto-increment。评论者指出,这不是一个好主意。 可能,您可以只使用内置的自动增量功能,如果可以的话。由于听起来rid
是表的ID字段,所以肯定是这样。
如果确实需要根据已经存在的值插入值,那是完全可能的。请勿使用下面的代码段,但是根据您要完成的语法而定可能会有用。
INSERT INTO users_items (rid, item_id, user_id, x, y, amount, item_value)
SELECT
MAX(rid) + 1 as rid,
? as item_id,
? as user_id,
? as x,
? as y,
? as amount,
? as item_value
FROM
users_items
答案 1 :(得分:0)
尝试在“ rid”列中使用“自动递增”属性。通过这种方式进行设置时,无需在查询中指定“ rid”。
但是,如果必须通过首先选择最后一个“ rid”来做到这一点,则必须将“ SELECT”语句放在插入中,如下所示:
public class Hello {
public static void main(String[] args) {
}
}
关于。