gpt4 book ai didi

mysql - 在sql中使用两个检查约束

转载 作者:行者123 更新时间:2023-11-28 23:39:36 25 4
gpt4 key购买 nike

我正在寻找对一个属性使用两种可能性的可能性。这里有一个例子:

CREATE TABLE person (
name VARCHAR(200),
age INTEGER CONSTRAINT adult
CHECK (age >= 18)
)

如果年龄超过 18 岁,代码会将此人称为成人,但现在我希望将此人称为 child ,如果他未满 18 岁。

CREATE TABLE  Person (
Id INTEGER NOT NULL PRIMARY KEY,
power_level INTEGER NOT NULL,
evilness_level INTEGER NOT NULL,
name VARCHAR(256) NOT NULL UNIQUE,
)

或者如果此人的 evilness_level < 0,则为 super 英雄,否则为 super 恶棍。

祝你有美好的一天!

最佳答案

您可以尝试创建一个 TRIGGER,例如

CREATE TRIGGER trig_evilness_level_check BEFORE INSERT ON Person 
FOR EACH ROW
BEGIN
IF NEW.evilness_level < 0 THEN
SET NEW.Name = 'super hero';
ELSE
SET NEW.Name = 'super villain';
END IF;
END

同样,您也可以为年龄检查创建触发器。

建议创建 TRIGGER 而不是 CHECK 约束的原因从 manual 中可以清楚地看出。其中说:

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

关于mysql - 在sql中使用两个检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34760456/

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