SQL 如何根据另一个值自动递增一个值
SQL how to auto increment a value depending on another value
我正在创建一个使用 SQL 数据库的程序,但我对如何解决以下问题有疑问。
我有一个名为 table 的仓库,其中有 WarehouseID 和 WarehouseName。
然后,我创建了另一个名为 Aisle 的 table,其中我有 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
returns 您要在 table Aisle
.
中插入的新 AisleID
但是你想要 AisleName
的值是多少?
如果 Aisle
中具有相同 WarehouseID
的所有行的 AisleName
相同,您可以使用 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
的新值=24=]
我正在创建一个使用 SQL 数据库的程序,但我对如何解决以下问题有疑问。
我有一个名为 table 的仓库,其中有 WarehouseID 和 WarehouseName。
然后,我创建了另一个名为 Aisle 的 table,其中我有 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
returns 您要在 table Aisle
.
中插入的新 AisleID
但是你想要 AisleName
的值是多少?
如果 Aisle
中具有相同 WarehouseID
的所有行的 AisleName
相同,您可以使用 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
的新值=24=]