0
我希望有一個更列,這將依賴於另一列的值自動遞增:列值自動增量依賴於另一列值實體框架的核心
ID | UserID | IDForUser
1 | 4 | 1
2 | 10 | 1
3 | 4 | 2
4 | 4 | 3
5 | 10 | 2
6 | 9 | 1
7 | 9 | 2
這可能嗎?
我希望有一個更列,這將依賴於另一列的值自動遞增:列值自動增量依賴於另一列值實體框架的核心
ID | UserID | IDForUser
1 | 4 | 1
2 | 10 | 1
3 | 4 | 2
4 | 4 | 3
5 | 10 | 2
6 | 9 | 1
7 | 9 | 2
這可能嗎?
built-in autoincrementing algorithm不能這樣工作。
要計算下一個IDForUser
值,請搜索具有相同UserID
(或零)的最大現有值,並添加一個值。 如果你不想這樣做在你的代碼,你必須使用一個trigger:
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;
[使用觸發自動增量](http://stackoverflow.com/a/2406528/6680611) – cartant