Как проверить ограничение внешнего ключа не удалось по какой причине.
Я создал базу данных в sqlserver с несколькими таблицами, и почти каждая таблица связана с внешними ключами. Использование PHP CodeIgniter в качестве бэкенда
Теперь, согласно общему потоку, при удалении/обновлении базы данных записей проверяются внешние ключи, и если они не совпадают, это дает ошибку.
здесь я хочу показать пользователю правильное сообщение о том, почему внешний ключ не удался. Это означает, что если я пытаюсь удалить из родительской таблицы, а ссылка на нее существует во вторичной таблице, то вместо того, чтобы показывать длинное непонятное сообщение, Я хочу сначала показать сообщение типа "Вы должны удалить записи из <вторичной таблицы="">".
Моя структура таблицы такова,
таблица1 :
&ЛТ;user_master&ЛТ; б=""&ГТ;
Id, имя, адрес электронной почты,пароль
Таблица 1: User_details
идентификатор fk_user_master_id, адрес,телефон
Кроме того, если есть несколько внешних ключей, доступных для одной и той же таблицы, то я хочу показать список таблиц, которые будут конфликтовать с ключами.
Если точные записи из справочных таблиц, которые предотвращают удаление, также могут быть извлечены, то это будет здорово.
Что я уже пробовал:
Я успешно извлек внешние ключи, назначенные таблице, используя следующий запрос
SELECT OBJECT_NAME(f.parent_object_id) TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.tables t ON t.OBJECT_ID = fc.referenced_object_id WHERE OBJECT_NAME (f.referenced_object_id) = 'User_master'