繁体   English   中英

SQL 如何根据另一个值自动增加一个值

[英]SQL how to auto increment a value depending on another value

我正在创建一个程序,我正在使用 SQL 数据库,但我对如何解决以下问题有疑问。

我有一个名为 Warehouse 的表,其中有 WarehouseID 和 WarehouseName。

然后,我创建了另一个名为 Aisle 的表,其中包含 WarehouseID(应该与之前的字段相同)以及 AisleID 和 AisleName。

所以 WarehouseID 和 AisleID 可以是 1, 2, 3... 但是我想要的是当我 select WarehouseID = 1 来创建一个新的 AisleID 时,数据库应该能够注意到 WarehouseID = 1 的最后一个 AisleID并添加一个自动增量。

因此,可以是多个具有相同值的 AisleID,但只能是具有一个唯一值的 WarehouseID。

我该如何在 SQL 中做到这一点?

感谢和亲切的问候

这个查询:

SELECT COALESCE(MAX(AisleID), 0) + 1
FROM Aisle
WHERE WarehouseID = 1

返回要在表Aisle中插入的新AisleID
但是您想要AisleName的值是多少?
如果AisleName对于Aisle中具有相同WarehouseID的所有行都相同,则可以使用MAX(AisleName) ,或者如果不是,则必须提供该值。

所以你可以这样做:

INSERT INTO Aisle(AisleID, AisleName, WarehouseID)
SELECT COALESCE(MAX(AisleID), 0) + 1, MAX(AisleName), ?
FROM Aisle
WHERE WarehouseID = ?

更换? 具有您希望该行具有的WarehouseID的值。
如果您希望它与之前的行不同,或者如果它是具有该WarehouseID的第一行,也将MAX(AisleName)替换为AisleName的新值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM