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 サイトの他の関連記事を参照してください。