[英]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.