繁体   English   中英

创建一个值存在于另一个表中的检查约束

[英]Create a check constraint that a value exists in another table

我正在使用一个 mariaDB 实例,我想创建一个检查约束,一个值必须存在于另一个表中。 在下面的示例中,TableA.Number 必须已经存在于 TableB 中。

表A

名称 varchar(30)

数字整数

表B

数字整数

我不知道我是否正确理解你的问题,但你是否已经尝试过使用外键?

https://mariadb.com/kb/en/foreign-keys/

您可以创建一个触发器来实现相同的

CREATE TRIGGER Check_exist_in_B BEFORE

INSERT ON TableA >

DECLARE ExistingNum INT;>

SET @ExistingNum : = (
        SELECT NUMBER
        FROM TableB
        WHERE b.number = new.number
        ) >

IF (@ExistingNum IS NULL) THEN > SIGNAL SQLSTATE '45000' >
    SET MESSAGE_TEXT = 'Not exists in B' >
    END;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM