0

我有一个表“comments”,其中包含一个基本的 auto-inc PK“id”字段,还有一个“type”字段。在另一个表中,我希望引用完整性将约束应用于 comments.id 以及“类型”,使用类型值的固定值。

示例:在表“question_comments_rate”中,我想强制“comment_id”作为“comments”表中的字段“id”存在[这是简单的部分]并且“type”列等于“question”。

这存在吗?我该如何编写这个约束声明?

它就像一个“条件约束”——不仅“comment_id”字段必须作为“comments.id”存在,而且“comments”表中的这个“id”需要是“type”等于“question”的行"(或其他指定值)...

我希望问题很清楚。通过您的帮助/反馈,我可能会更清楚。谢谢。

4

1 回答 1

3

这将是一个CHECK约束,MySQL 手册对此进行了说明:

CHECK子句被所有存储引擎解析但忽略。

您可以改为在插入/更新时创建触发器以强制执行完整性检查。

或者,在您的情况下,您可以设置type列的数据类型ENUM('question'),使其不能采用任何其他值(除了'',所有ENUM类型都可以是 - 例如,如果它们设置为无效值)。

于 2012-05-01T09:03:51.047 回答