2013-01-18 55 views
0

說我有如下表設置在MySQL表中每個用戶ID的條目的最大數量

//table user_update 
update_id | userid | update_message | timestamp 

有沒有一種方法來設置用戶ID每個條目的最大值是多少?我想在用戶輸入5次更新後再輸入更新,之後輸入的更新將刪除最早的更新。我知道如何通過PHP來做到這一點,只是好奇,如果有任何方式只通過MySQL來做到這一點。

+0

創建一個包含10行的表並更新最早的表。 – Strawberry

回答

1

我能想到做數據庫端的唯一方法就是在表上使用TRIGGER。也許是這樣的:

CREATE TRIGGER check_for_too_many_rows 
AFTER INSERT ON User_Update 
FOR EACH ROW BEGIN 
    DO SOME LOGIC TO CHECK THE COUNT AND DELETE IF MORE THAN 5... 
END; 

下面是一些額外的信息:

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

好運。

+0

嗯,似乎它只是用PHP來做它更快。感謝您的信息,無論如何仍然會檢查它。 – user1852176

+0

我很可能會同意,這取決於您的需求。數據是否可以手動或在其他進程(非PHP)中添加到表中?如果是這樣,觸發器是確保數據準確性的最佳方法(每個用戶不超過5行)。如果沒有,那麼是的,PHP的工作原理是一樣的。祝你好運。 – sgeddes

1

這實際上是可能的。但是如果你真的想做出這樣的努力,這是值得懷疑的。

閱讀一些關於「觸發器」的內容。您可以使用觸發器在滿足特定條件時開始操作。通過這種方式,您可以在該表上的每個insert操作上觸發delete操作。然後剩下的只是一個條件,最多可保留五個條目。

相關問題