【发布时间】:2019-02-08 15:27:29
【问题描述】:
我有一个通过 ajax 调用提交的表单,其中“id”列的主键设置为自动递增。
当我在没有说明 ID 的情况下发布时,它可以正常工作,并且项目以 1 的增量输入到表格中。
我想要做的是告诉我的查询下一个自动增量是什么......例如它现在是 5,我希望它在它当前所在的 5 上加上 10,所以它进入id 为 15。有人可以帮我处理语法,因为我似乎无法让它工作..再次发布,没有查询中说明的 id。
这是不工作的查询。顺便说一句,我已经知道弄乱主键不是一个好主意,但在这种情况下,它可以快速解决一个令人讨厌的问题,我将在它们备份并运行后解决这个问题。
$sql = "INSERT INTO Products
(id, item, description, shelf, active)
VALUES
('".id."'+ 10, '".$item."', '".$description."', '".$shelf."', '".$active."')";
谢谢
【问题讨论】:
-
如果你用自动增量“搞砸”了一些东西,你可以重置它们,如果这是你的问题...
-
不要尝试插入 id 值,而是更改表定义中的自动增量值。
-
您必须在插入之前检索 ID 的最大值。但是,您将无法知道另一个查询是否在您检索的值和插入语句之间增加了该值。为什么要在查询中这样做?
-
这里是自动增量选项的一些基本信息dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
-
您可以使用
ALTER TABLE语句更改自动增量,请参阅stackoverflow.com/questions/970597/…。但是为什么要弄乱自动增量值/列呢?