2015-08-10 3 views
1

Я нашел this учебник, в котором говорится, что вопрос может быть решен таким образом:Как создать внешний ключ с несколькими полями в Access?

Multiple поля ограничение:

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]}; 

Для моей упрощенной базы данных:

enter image description here

я написал такой код sql, который имеет идею соединить 2 столбца из 2 таблиц. Кроме того, я хотел бы добавить уникальное ограничение на 2 поля s2t таблицы:

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 строительства, пожалуйста, помогите

ответ

0

Это работает как следует , кажется, что официальный учебник запутанным:

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); 
Смежные вопросы