gpt4 book ai didi

mysql - 如何检查外键对象是否属于某种类型

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

这个问题被简化以减少困惑。

在我的数据库中,我有 2 个表。 1 个表“产品”和 1 个表“通知”。该产品可以有 3 种类型,由枚举定义(ENUM('SERVER', 'SERVICE', 'APPLICATION'))。

通知包含产品的外键及其 ID。

当我创建通知时,我想检查给定的 ForeignKey 是否属于“APPLICATION”类型。我可以进行这样的检查吗?如果是这样,这是通过 CHECK 完成的吗?

据我所知,我唯一可以检查的是一个值(例如 CHECK(foo > 0) )

最佳答案

最简单的做法是触发 Before Insert 和第二个 Before Update

您可以对您的外国人键值进行 SELECT 以在触发器中对其进行测试,并释放错误。

看看CHECK constraint in MySQL is not working的第二个答案

Like this :

DELIMITER $$
CREATE TRIGGER `test_before_insert` BEFORE INSERT ON `Test`
FOR EACH ROW
BEGIN
IF CHAR_LENGTH( NEW.ID ) < 4 THEN
SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT := 'check constraint on Test.ID failed';
END IF;
END$$
DELIMITER ;

关于mysql - 如何检查外键对象是否属于某种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35291091/

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