2
假設我有一個有「id_author」列的表,我想爲相同值的出現設置一個限制;例如:不能超過3個相同的「id_author」值,所以當我插入第4個時,它被拒絕。爲mysql表中的值設置限制事件
有沒有一種方法來實現這一點?由於
假設我有一個有「id_author」列的表,我想爲相同值的出現設置一個限制;例如:不能超過3個相同的「id_author」值,所以當我插入第4個時,它被拒絕。爲mysql表中的值設置限制事件
有沒有一種方法來實現這一點?由於
您可以使用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
非常感謝你,這正是我想學習如何做:) – Silversprint