gpt4 book ai didi

mysql - 表充满数据后添加检查约束

转载 作者:行者123 更新时间:2023-11-29 05:33:51 26 4
gpt4 key购买 nike

我有一个表,我想在它创建后添加一个检查约束。我做了一些谷歌搜索并找到了一些答案,但它们似乎不起作用。这是我尝试过的:

ALTER TABLE noise_table 
ADD CONSTRAINT chk_level CHECK (noise_level >= 0 and noise_level <= 0.1);

但是,在运行此语句后,我仍然可以在检查的时间间隔之外进行更新和插入,因此它似乎根本不起作用。我在这里缺少什么?

最佳答案

根据 ALTER TABLE Syntax 记录:

The CHECK clause is parsed but ignored by all storage engines.

您可以改为定义 BEFORE INSERTBEFORE UPDATE triggers在不满足您的条件时引发错误:

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 ;

关于mysql - 表充满数据后添加检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com