插入数据库并选择值

时间:2019-08-15 15:30:49

标签: mysql node.js database

我想向表中插入数据,但是我必须先从该表中获取“ 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查询有什么问题?

2 个答案:

答案 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) {
    }
}

关于。

相关问题