2013-11-27 104 views
2

有沒有辦法根據插入行中另一列的值自動增加條目到MySQL表中?例如,有人說這是特定用戶名的第五個條目?MySQL:基於列值的自動遞增?

我知道我可以做一個行計數我讓我的查詢後,但是這不是我要找的。我環顧四周,似乎無法找到任何東西。

謝謝!

+1

如果你不喜歡的東西是那麼它不會自動遞增 - 在MySQL的感覺反正。 – Steve

+1

您可以爲表創建插入觸發器並在其中添加邏輯。但正如史蒂夫所說,這不會自動增加。 – Pepe

+0

@Steve好吧,但無論語義可以這樣做? – user3011922

回答

2

假設您的表格爲Users,其中有2列,usernamecounter。您提到的案例的示例代碼。運行這個來創建觸發器。它應該在每個插入物上開火。

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 

免責聲明:這可能不是世界上最高效的或乾淨的東西。我會感興趣的是其他人可以想出什麼。

+0

非常感謝。我目前正在研究觸發器,所以我可以理解這裏發生了什麼,並真正感謝您的迴應。 – user3011922

+0

@ user3011922祝你好運!坦率地說,我沒有真正測試過上面的例子,但希望它能工作。我正在睡覺,如果您有任何問題,或者如果這不起作用,請給我留言,我會在早上回復。 – Pepe