簡體   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