有沒有辦法根據插入行中另一列的值自動增加條目到MySQL表中?例如,有人說這是特定用戶名的第五個條目?MySQL:基於列值的自動遞增?
我知道我可以做一個行計數我讓我的查詢後,但是這不是我要找的。我環顧四周,似乎無法找到任何東西。
謝謝!
有沒有辦法根據插入行中另一列的值自動增加條目到MySQL表中?例如,有人說這是特定用戶名的第五個條目?MySQL:基於列值的自動遞增?
我知道我可以做一個行計數我讓我的查詢後,但是這不是我要找的。我環顧四周,似乎無法找到任何東西。
謝謝!
假設您的表格爲Users
,其中有2列,username
和counter
。您提到的案例的示例代碼。運行這個來創建觸發器。它應該在每個插入物上開火。
CREATE TRIGGER insert_update BEFORE INSERT ON Users
FOR EACH ROW
BEGIN
DECLARE name_count INTEGER;
SELECT COUNT(*) INTO @name_count FROM Users WHERE username = NEW.username;
INSERT INTO Users VALUES (NEW.username, @name_count+1);
END
END
免責聲明:這可能不是世界上最高效的或乾淨的東西。我會感興趣的是其他人可以想出什麼。
非常感謝。我目前正在研究觸發器,所以我可以理解這裏發生了什麼,並真正感謝您的迴應。 – user3011922
@ user3011922祝你好運!坦率地說,我沒有真正測試過上面的例子,但希望它能工作。我正在睡覺,如果您有任何問題,或者如果這不起作用,請給我留言,我會在早上回復。 – Pepe
如果你不喜歡的東西是那麼它不會自動遞增 - 在MySQL的感覺反正。 – Steve
您可以爲表創建插入觸發器並在其中添加邏輯。但正如史蒂夫所說,這不會自動增加。 – Pepe
@Steve好吧,但無論語義可以這樣做? – user3011922