我想要多一个列,它将根据另一个列值自动递增:
ID | UserID | IDForUser
1 | 4 | 1
2 | 10 | 1
3 | 4 | 2
4 | 4 | 3
5 | 10 | 2
6 | 9 | 1
7 | 9 | 2这有可能吗?
发布于 2016-08-13 13:50:52
built-in autoincrementing algorithm不是这样工作的。
要计算下一个IDForUser值,请搜索具有相同UserID (或零)的最大现有值,然后添加1。如果不希望在代码中执行此操作,则必须使用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;https://stackoverflow.com/questions/38927629
复制相似问题