列值根据另一个列值自动递增实体框架核心
本文关键字:实体 框架 核心 另一个 | 更新日期: 2023-09-27 18:02:10
我想再增加一列,它会根据另一列的值自动增加:
ID | UserID | IDForUser
1 | 4 | 1
2 | 10 | 1
3 | 4 | 2
4 | 4 | 3
5 | 10 | 2
6 | 9 | 1
7 | 9 | 2
这可能吗?
内置的自动递增算法不是这样工作的。
要计算下一个IDForUser
值,请查找具有相同UserID
(或零)的最大现有值,并加1。如果您不希望在代码中这样做,则必须使用触发器:
CREATE TRIGGER xxx
AFTER INSERT ON MyTable
FOR EACH ROW
WHEN NEW.IDForUser IS NULL
BEGIN
UPDATE MyTable
SET IDForUser = IFNULL((SELECT MAX(IDForUser)
FROM MyTable
WHERE UserID = NEW.UserID), 0) + 1
WHERE ID = NEW.ID;
END;