首页 > 解决方案 > 插入新的增量值

问题描述

INSERT into products (basket_number)
  (SELECT (MAX(basket_number) + 1) FROM products WHERE user_id = 9);

当我执行上面的语句时,它将正确添加一个更新了 basket_number 的新行。但是,当尝试以任何方式插入 user_id 时,它将不起作用。例如下面:

INSERT into products (user_id,basket_number)
 (9, (SELECT (MAX(basket_number) + 1) FROM products WHERE user_id = 9));

我不确定我需要做什么来解决这个问题。

标签: mysql

解决方案


好吧,您当然可以在这里使语法起作用:

INSERT into products (user_id, basket_number)
SELECT 9, MAX(basket_number) + 1
FROM products
WHERE user_id = 9;

但通常,如果您想在表中使用自动递增序列,您应该只将其中一列(通常是主键)设为自动递增列。


推荐阅读