达到限制时如何停止在MySQL表中插入记录

时间:2011-12-20 18:05:25

标签: php mysql

PHP / MySQL语句中的任何帮助都限制了何时达到一定数量的记录。

我试过这个$query = 'ALTER TABLE admin MAX_ROWS = 5';但是没有用。仍然填充它

3 个答案:

答案 0 :(得分:0)

我认为你应该通过权限来控制它。您可以查看this question,其中讨论了如何为用户设置权限,以便您的表格是只读的,这将禁止进一步插入。

答案 1 :(得分:0)

实现此限制的一种方法是将一个FOREIGN KEY列添加到另一个正好有5行的表中:

CREATE TABLE const5
( i TINYINT NOT NULL 
, PRIMARY KEY (i) 
) ENGINE = InnoDB ;

INSERT INTO TABLE const5(i)
VALUES (1), (2), (3), (4), (5) ;

然后:

ALTER TABLE admin
  ADD COLUMN i TINYINT NOT NULL
, ADD FOREIGN KEY (i) 
        REFERENCES const5(i) 
; 

答案 2 :(得分:-1)

尝试使用MySQL trigger

当条件不满足时,您可以使用hack中止插入操作。

http://www.brokenbuild.com/blog/2006/08/15/mysql-triggers-how-do-you-abort-an-insert-update-or-delete-with-a-trigger/

但我仍然认为最好的选择是将逻辑保留在PHP代码中,这样您就可以在提交插入之前使用count(*)验证数据库行。