mysql - 插入新的增量值
问题描述
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));
我不确定我需要做什么来解决这个问题。
解决方案
好吧,您当然可以在这里使语法起作用:
INSERT into products (user_id, basket_number)
SELECT 9, MAX(basket_number) + 1
FROM products
WHERE user_id = 9;
但通常,如果您想在表中使用自动递增序列,您应该只将其中一列(通常是主键)设为自动递增列。
推荐阅读
- azure - Add-AzureAnalysisServicesAccount 未被识别为 cmdlet
- c# - 在 C# 中使用 log4net 附加到文件
- web2py - Web2py:调用控制器函数时得到一个意外的关键字参数
- entity-framework - 实体框架根本不插入数据
- docker - 使用 helm 扩展覆盖 values.yml 以实现 ansible
- text-files - PhpSpreadSheet 到 .txt
- javascript - 更改所选课程页面上的字体大小
- ios - 在 Swift 中将坐标插入数组时出错
- php - Apache 在 ubuntu 18.04 上使用挂载的图像目录提供带有工件的图像
- jpa - 在 Spring Data JPA 应用程序中生成 ddl 的问题