Проверка на нарушение целостности в SQL перед удалением - PullRequest
3 голосов
/ 29 октября 2010

Мой вопрос похож на этот

Я хочу проверить, не удастся ли выполнить запрос DELETE из-за нарушения ограничения. Я хотел бы сделать это на уровне базы данных, потому что я думаю, что позволить ему потерпеть неудачу и отловить ошибку - это ужасно.

Другой вариант - это «вручную» проверять его с помощью запросов SELECT, чтобы увидеть, есть ли ограничения, но это довольно утомительно, imho.

Есть ли "родной" способ сделать это?

1 Ответ

3 голосов
/ 04 января 2011

Самый простой и прямой способ - выполнить DELETE и перехватить ошибку.

Если вы запустите инструкцию SELECT для других таблиц, вы можете узнать, существуют ли строки (подразумевается ограничение внешнего ключа).Но ограничения внешнего ключа являются лишь одним из многих видов ограничений целостности.

Вы также должны учитывать, что некоторые ограничения целостности могут быть реализованы с помощью триггеров (по веским причинам, плохим причинам или вообще без причин).

...