gpt4 book ai didi

mysql - SQL - 确保一个表中的值与另一表中的适当值相关联的约束

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

我不太确定如何表达。我的预订系统有 3 个表,其中包括“付款”“信用卡”“预订”。我需要添加一个约束,以确保“付款”表中的信用卡 ID 属于进行预订的客户,该客户与付款表中的信用卡 ID 号位于同一行。

信用卡 - 包含属性“CC_ID”、“Customer_ID”、“Card_Number”

预订 - 包含属性“R_ID”、“Schedule_ID”、“Customer_ID”

付款 - 包含属性“CC_ID”、“预订”

因此,我基本上需要检查付款中的 CC_ID(与信用卡中的客户 ID 绑定(bind))是否属于进行预订的同一客户位于预订中,最终与付款中的预订编号相对应。当将值添加到“付款”表时,这将是一个输入约束,而不是在输入时手动检查以确保它属于客户。

最佳答案

执行您想要的操作的一种方法涉及触发器。简单的约束是不行的。 。 。少一点点改变数据结构。

因此,一种方法是更改​​付款以包含customer_id。我意识到这是多余的,但是您可以使用外键约束。

alter table payments add customer_id  . . . ;

alter table reservations add constraint unq_reservations_2
unique (customer_id, r_id);

alter table payments add constraint
foreign key (customer_id, reservation) references reservations(customer_id, r_id);

虽然 reservation 表不需要这两个键,但拥有这两个键允许您在两列上创建外键约束。

关于mysql - SQL - 确保一个表中的值与另一表中的适当值相关联的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775970/

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