1

我有一种情况,我想创建一个表,以便当有人尝试在其中插入一行时,它将验证其他表中是否存在其中一些属性的组合。

例如,假设 a,b,c,d,e 构成了我试图创建的表 F 中的属性。我想验证表 G 中是否存在 a,b,c,d。表 G 具有属性 a,b,c,d ;但是由于其他原因,'b' 不能是主键,并且只有 NOT NULL 约束。因此,我不能简单地让表 F 中的“a、b、c、d”的组合成为该表的 FK,这将解决问题,因为 b 不是 PK。

是否有任何检查可以与在表 F 中引用表 G 的 a、b、c、d 上设置 FK 相同,但不需要 b 作为主键?

如果我说得不够清楚,请告诉我,我会编辑它。我已经检查了手册,但似乎找不到合适的条款。

谢谢你。

4

1 回答 1

0

您可能会非常接近使用“插入前”触发器的解决方案。

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

如果您查看评论部分,则有一些建议的方法可以根据某些外部因素中止“建议的”插入。这不是“设计使然”,但似乎确实可行。

于 2012-09-25T15:46:12.353 回答