增加现有数据库值以将其用作新记录的值

时间:2015-01-11 00:21:34

标签: mysql max

我有一个表格,其中包含 item_order 列的项目为非可空INT。

当我创建新项目时,我需要表中存在最高 item_order ,因此我可以增加它并插入新记录。在我的意思的抽象示例下面:

INSERT INTO item (name, item_order)
VALUES ('New Item', (SELECT MAX(item_order) FROM item AS item_order) + 1)

我认为这是疯狂的谈话:)我如何实现我的需要?

更新

我觉得这很有用:Increment a database field by 1

我可以使用上面显示的SELECT MAX(item_order) + 1作为VALUES参数吗?

1 个答案:

答案 0 :(得分:0)

将item_order更改为AUTO_INCREMENT列。

ALTER TABLE `item` 
CHANGE COLUMN `item_order` `item_order` INT(11) NOT NULL AUTO_INCREMENT;

这假设您已将其作为主键,否则如果您真的想这样做,那么您可以这样做。

SET @nextItemOrder = IFNULL((SELECT MAX(item_order) FROM item AS item_order),0) + 1;
INSERT INTO item (name, item_order)
VALUES ('New Item', @nextItemOrder);