Как обновить таблицу мостов в SQL Server? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть три таблицы tblSubject, tblSubjectGroup и tblSubjectGroupDetails.

tblSubject таблица содержит следующие столбцы:

subId (PK, char(36), not null)
subName (varchar(50), not null) 

tblSubjectGroup таблица содержит следующие столбцы:

subGroupId (PK, char(36), not null)
subGroupName (varchar(50), not null)

tblSubjectGroupDetails - таблица моста междуПриведенные выше таблицы, имеющие отношение многие ко многим:

subGroupId (FK, char(36), not null)
subId (FK, char(36), not null)

Я поместил в эти таблицы следующие фиктивные данные:

tblSubject :

Английский язык, математика, физика, химия, наука, биология, экономика, география, история

tblSubjectGroup :

Group1, Group2, Group3

  • Group1 связан с English, Mathematics and Biology
  • Group2 связан с Geography, History and Economics
  • Group3 связан с Physics, Chemistry and Science

Здесь я хочу обновить Group2 следующими темами: Geography, History, Science.

(Вставка и удаление - это хорошо для меня, но я не могу понять, как обновить таблицу мостов)

UPDATE tblSubjectGroupDetails 
SET subId = '......' 
WHERE subGroupId = '......'

Вышеприведенное утверждение изменит все субъекты конкретной субъектной группы.Я хочу изменить только экономику на науку для группы 2.

Кстати, я забыл упомянуть, что tblSubjectGroupDetails имеет составной первичный ключ.

Как я могу сделать это в SQL Server?

1 Ответ

0 голосов
/ 16 октября 2018

Я хочу изменить только экономику на науку для группы 2.

Вам нужно другое условие в предложении where, например:

UPDATE tblSubjectGroupDetails SET subId = science_id
WHERE subGroupId = group_2_id
  and subId = economics_id;

Просто заменитеИдентификаторы с правильными значениями.

Конечно, это не сработает (сгенерирует нарушение ограничения первичного ключа), если в вашей группе 2 уже есть запись субъекта науки в этой таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...