ホームページ > データベース > mysql チュートリアル > MySQL での空の文字列の挿入を防ぐにはどうすればよいですか?

MySQL での空の文字列の挿入を防ぐにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-27 02:00:14
オリジナル
436 人が閲覧しました

How Can I Prevent Empty String Insertions in MySQL?

データベース制約を使用した MySQL への空の文字列の挿入の防止

NULL 値の挿入を防ぐためにサーバー側のチェックがよく使用されますが、それだけでは十分ではない場合があります空の文字列が挿入されないようにします。これに対処するには、データベース制約を使用できます。

MySQL では、テーブルに挿入できるデータを制限する制約を定義できます。このような制約の 1 つが CHECK 制約です。これを使用すると、挿入されたデータが満たさなければならない条件を指定できます。

たとえば、foo_test という名前の列に空の文字列 ('') が挿入されないようにします。では、次の CHECK 制約を使用できます:

foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')
ログイン後にコピー

この制約は、foo_test の値が空の文字列と等しくないことをチェックし、事実上、その値を禁止します。

ただし、MySQL バージョン 8.0 より前では、CHECK 句は通常、ストレージ エンジンによって無視されました。回避策として、挿入前に空の文字列をチェックするトリガーを作成できます。

CREATE TRIGGER before_insert_tblFoo
BEFORE INSERT ON tblFoo
FOR EACH ROW
SET foo_test = NULL  -- Replace empty string with NULL (or another default value)
WHERE NEW.foo_test = '';
ログイン後にコピー

このトリガーにより、空の文字列を挿入しようとする試みはすべて NULL またはより適切な値に置き換えられます。

PostgreSQL が CHECK 制約を含むデータ整合性の強力なサポートを提供していることは注目に値します。より高度な制約機能が必要な場合は、PostreSQL が適切なオプションとなる可能性があります。

以上がMySQL での空の文字列の挿入を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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