Циркулярная связь: оператор UPDATE конфликтовал с ограничением FOREIGN KEY - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь провести инвентаризацию наших ИТ-активов в SQL. У меня есть базовые c SQL знания, и я не DBA, поэтому, пожалуйста, потерпите меня! Диаграмма SQL загружена по ссылке ниже для справки.

У меня есть физические хосты, устройства SAN, сетевые устройства, виртуальные серверы и т. Д. c. У меня есть таблица устройств, в которой есть данные для всех устройств, но затем я решил создать схему для кластеров, хостов и виртуальных серверов в этом иерархическом порядке. Дело в том, что виртуальный сервер - это устройство, а хост для виртуального сервера - это устройство. Таким образом, оба должны будут ссылаться на DeviceID.

Я добавляю один хост и один виртуальный сервер в таблицу «устройств» (для тестирования таблиц). Затем я добавляю тот же хост в таблицу "vHosts" без проблем и тот же виртуальный сервер в таблицу "vServer". Но когда я ввожу vServer, я вижу ошибку

Оператор UPDATE конфликтует с ограничением FOREIGN KEY ... "" Конфликт произошел в базе данных ... "" ... Утверждение прекращено "

Может кто-нибудь объяснить мне, что я сделал неправильно и как его изменить, чтобы он работал. Пожалуйста, обратитесь к рисунку, чтобы понять буквальную полную картину. FYI, есть много других таблиц для этой БД, но я включил только соответствующие таблицы в эту диаграмму.

SQL Диаграмма круговых отношений

SQL Circular Relationship Diagram

...