空の文字列を挿入していますが、空の文字列はNULL
ではありません 、NULL
を確認します エラーが発生しました:
INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);
エラーが表示されます。 NOT NULL
NULL
ではない値のみをチェックします 。
空の文字列を防ぐには、トリガー
を使用する必要があります。 、またはサーバー側プログラミング言語のチェックを実行して、空の文字列をNULL
に変換します INSERT
を実行する前に query.INSERT
のトリガーの例 次のようになります:(これは単なる例です)
CREATE TRIGGER avoid_empty
BEFORE INSERT ON addresses
FOR EACH ROW
BEGIN
IF street = '' THEN SET street = NULL END IF;
END;