簡體   English   中英

達到限制后如何停止在MySQL表中插入記錄

[英]How to stop inserting records in MySQL table when a limit is reached

PHP / MySQL中的語句中的任何幫助都會限制何時達到一定數量的記錄。

我嘗試了這個$query = 'ALTER TABLE admin MAX_ROWS = 5'; 但不起作用。 仍在填充

我認為您應該通過權限來控制它。 您可以查看該問題該問題討論了如何為用戶設置權限,以便您的表是只讀的,這將不允許進一步的插入。

實施此限制的一種方法是將作為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) 
; 

嘗試使用MySQL觸發器

當條件不滿足時,您可以使用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(*)驗證數據庫行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM