Как создать внешний ключ в sql server с несколькими столбцами?

#sql #sql-server #key

Вопрос:

я пытаюсь создать внешний ключ:

 create table visit
      (Num_vst int primary key,
      date_vst date,
      num_agnt int,
      code_type int,
      Constraint fk_vst foreign key (num_agnt,code_type) 
        references agente,type_de_verification  (num_agnt,code_type);
 

в чем проблема?

Комментарии:

1. Похоже, у вас опечатка в названии связанной таблицы: agente,type_de_verification . Это должно быть одно имя таблицы. Может быть, в этой запятой прямо там должна быть точка.

2. @TheImpaler там 2 стола! например, numa_agnt связан с agente, а code_type связан с type_de_verification! внешний ключ, связанный с 2 таблицами! я ошибаюсь?

3. Внешний ключ может ссылаться только на одну таблицу, и он также должен быть полным ключом.

Ответ №1:

Вы описываете две отдельные связи с двумя таблицами:

num_agnt связан с agente, а code_type связан с type_de_verification

В этом случае вы можете определить оба внешних ключа, как показано ниже:

 create table visit (
  Num_vst int primary key,
  date_vst date,
  num_agnt int,
  code_type int,
  constraint fk1 foreign key (num_agnt) references agente (num_agnt),
  constraint fk2 foreign key (code_type)
    references type_de_verification (code_type)
);