実際には、できません DDL構文で条件付き構造を定義します。フィールドはNULL
のいずれかになります またはNOT NULL
-3番目のオプションはありません(構造内の別のフィールドに依存することはできません )
ただし、トリガーを介して目的の動作をエミュレートすることはできます。 UPDATE
を中断できます / INSERT
受信データがロジックの観点から無効である場合のステートメント。これは次の方法で実行できます:
CREATE TRIGGER `bannedOnCheck`
BEFORE INSERT ON `fa_ranking_system`.`Player`
FOR EACH ROW
BEGIN
IF(new.IsBanned && new.BannedOn IS NULL) THEN
SIGNAL 'Integrity check failed: can not set banned without ban date'
END IF
END