0

我是 SQL 新手,我想开发一个包含两个表(项目、任务)的数据库。一对多的关系。如何在 SQL(javaDB、Apache Derby)中创建约束以检查每个项目必须至少有一个或多个任务,并且每个任务最多只能分配给一个项目。这只是一个例子,但我主要对 1: 站点的强制参与感兴趣。在 SQL Anywhere 中,我可以使用类似这样的 Check Exist 约束:CHECK(EXIST(SELECT * FROM task WHERE project.project_pk = task.task_pk)。问题是 CHECK EXIST 约束不在 Apache Derby 中。

4

1 回答 1

0

您不能同时使这两个约束生效。

考虑如何创建这些 - 无论您首先创建哪个都会使约束失效。

我认为通常情况下,在您的项目示例中,父对象不会对子对象有约束。但是,在您的示例任务中,子项将包含一个 NOT NULL 列,该列是父项的外键。

于 2013-07-06T12:38:13.583 回答