ホームページ > データベース > mysql チュートリアル > MySQL テーブルで厳格な行制限を強制するにはどうすればよいですか?

MySQL テーブルで厳格な行制限を強制するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 14:13:02
オリジナル
832 人が閲覧しました

How Can I Enforce a Strict Row Limit in MySQL Tables?

MySQL テーブルの最大行制限の達成

MySQL テーブルの厳密な最大行数を確立するという要件は、次のような課題を引き起こします。 MAX_ROWS テーブル プロパティは、データベース エンジンへのヒントとしてのみ機能します。ハード制限を強制するには、次のアプローチを検討してください:

トリガーで制限を強制する

行数を監視する BEFORE INSERT トリガーを作成する:

DELIMITER $$

CREATE TRIGGER trigger1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
  SELECT COUNT(*) INTO @cnt FROM table1;
  IF @cnt >= 25 THEN
    CALL sth(); -- raise an error
  END IF;
END
$$

DELIMITER ;
ログイン後にコピー

注意: 大規模な InnoDB テーブルに対する COUNT 操作は、遅い。

オーバーフロー時にエラーを発生させる

制限を超えたときに明示的にエラーを発生させるようにトリガーを変更します:

CREATE TRIGGER trigger1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
  DECLARE rowCount INT;
  SELECT COUNT(*) INTO rowCount FROM table1;

  IF (rowCount >= 25) THEN
    SIGNAL SQLSTATE '42000'
      SET MESSAGE_TEXT = 'Maximum row count reached (25)';
  END IF;
END
ログイン後にコピー

パフォーマンスに関する考慮事項

COUNT 操作が頻繁に行われることに注意してください大きなテーブルではパフォーマンスに影響を与える可能性があります。これを軽減するには、テーブルを最適化し、適切にインデックスを作成することを検討してください。

以上がMySQL テーブルで厳格な行制限を強制するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート