【问题标题】:How to create Multiple-field foreign key in Access?如何在 Access 中创建多字段外键?
【发布时间】:2015-08-10 12:07:04
【问题描述】:

我找到了this教程,上面说这个问题可以这样解决:

多字段约束:

CONSTRAINT name     {PRIMARY KEY (primary1[, primary2 [, …]]) |     
UNIQUE (unique1[, unique2 [, …]]) |     
NOT NULL (notnull1[, notnull2 [, …]]) |     
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, …]]) 
REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, …]])]    
[ON UPDATE CASCADE | SET NULL]     [ON DELETE CASCADE | SET NULL]};

对于我的简化数据库:

我写了这样的 sql 代码,它有一个连接 2 个表的 2 个列的想法。另外,我想在 S2T 表的 2 个字段上添加唯一约束:

alter table S2T add constraint TargetUniqKey
UNIQUE(target_table_name, target_column_name) 
Foreign key(TableName, ColumnName) references TargetColumns 
on update cascade on delete cascade;

但是我得到一个错误,说我在Alter table构造中有语法错误,请帮助

【问题讨论】:

    标签: sql ms-access ms-access-2010 alter-table


    【解决方案1】:

    这是应该的,似乎是官方教程令人困惑:

    alter table S2T add constraint TargetUniqKey
    Foreign key(target_table_name, target_column_name) 
    References TargetColumns(TableName, ColumnName) ;
    

    可以通过这种方式实现所提到的唯一性(可能有助于创建 1 对 1 连接)

    ALTER TABLE S2T ADD 
    CONSTRAINT Mykey
    UNIQUE (target_table_name, target_column_name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多