如何使用 SQL 指定 Microsoft Access 中的外键规则?

如何使用 SQL 指定 Microsoft Access 中的外键规则?

我必须使用 SQL 语句在 Microsoft Access 中创建一些表,并且一些表具有外键。

我想使用 SQL 指定外键的约束和规则:

  1. 是否允许 NULL
  2. 删除规则
  3. 更新规则

如何使用 SQL 指定 Microsoft Access 中的外键规则?

答案1

我终于找到了一些东西访问文档

定义 FOREIGN KEY 约束的 CONSTRAINT 子句接受以下语法:

CONSTRAINT FOREIGN KEY (ref1[, ref2[, ...]]) REFERENCES table
    ON UPDATE [CASCADE | SET NULL]
    ON DELETE [CASCADE | SET NULL]

我认为,为了指定该 FOREIGN KEY 是否允许为 NULL,必须添加不同的约束

CONSTRAINT NOT NULL (ref)

或者直接在 CREATE TABLE 子句中定义该字段时指定 NOT NULL。

但是,当我输入“ON UPDATE”和“ON DELETE”时,出现语法错误,提示不被接受,而当我删除这些规则时不会出现该错误。


编辑于2010-06-06:

此语法是正确的并且能正常工作,但为了让 Access 接受它,必须满足以下要求:

  1. 您必须使用 Access 2003 及更高版本。
  2. 在菜单“工具 > 选项”的“表或查询”选项卡中,您必须指定至少对于当前数据库“语法与 SQL Server(ANSI 92)兼容”。

在我的 Access 2003 中进行了上述配置后,它现在可以正常工作了!Access 不再显示该错误消息,并且现在允许使用该语法来指定外键的删除和更新规则!

如果未指定其中任何一条规则,Access 会假定它受到限制。换句话说,如果未指定删除规则或更新规则,Access 会分别限制删除或更新。

相关内容