ALTER TABLE
Syntaxの下に記載されているように:
句は解析されますが、CHECK
すべてのストレージ エンジンによって無視されます。
代わりに、基準が満たされない場合にエラーを発生させるトリガーを定義BEFORE INSERT
してトリガーすることができます。BEFORE UPDATE
DELIMITER ;;
CREATE TRIGGER chk_insert_level BEFORE INSERT ON noise_table FOR EACH ROW
IF NOT (NEW.noise_level >= 0 AND NEW.noise_level <= 0.1) THEN
CALL invalid_noise_level; -- non-existent procedure, raises an error
END IF;;
CREATE TRIGGER chk_update_level BEFORE UPDATE ON noise_table FOR EACH ROW
IF NOT (NEW.noise_level >= 0 AND NEW.noise_level <= 0.1) THEN
CALL invalid_noise_level; -- non-existent procedure, raises an error
END IF;;
DELIMITER ;