设置mysql表中值的限制

时间:2016-12-04 23:23:22

标签: mysql

所以,让我说我有一个表格,其中包含一个列" id_author" ,我想设定相同值出现的限制;例如:不能超过3个" id_author"因此,当我插入第4个时,它被拒绝了。

有没有办法实现这个?感谢

1 个答案:

答案 0 :(得分: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