2016-12-04 33 views
2

假設我有一個有「id_author」列的表,我想爲相同值的出現設置一個限制;例如:不能超過3個相同的「id_author」值,所以當我插入第4個時,它被拒絕。爲mysql表中的值設置限制事件

有沒有一種方法來實現這一點?由於

回答

3

您可以使用trigger插入之前,將在情況下拋出一個信號,它侵犯了您的條件:

CREATE TRIGGER tooManyRecords 
BEFORE INSERT ON yourTable 
FOR EACH ROW 

BEGIN 
DECLARE counter INTEGER; 

SELECT COUNT(*) INTO counter FROM yourTable 
WHERE id_author = NEW.id_author; 

IF counter >= 3 THEN 
    SIGNAL SQLSTATE '45000' SET message_text = 'there are already 3 records for the provided id'; 
END 
+0

非常感謝你,這正是我想學習如何做:) – Silversprint