Удаление записи

bjohny
Дата: 21.06.2004 09:06:27
Привет.
Можно ли как нибудь проверить, можно ли удалить запись из таблицы.
Т.е. запись таблицы может являться вторичным ключем к др. таблице. При удалении записи выдыется ошибка типа:
ERROR: update or delete on "programs" violates foreign key constraint "$2" on "major_code_info"
DETAIL: Key (progid)=(1) is still referenced from table "major_code_info".

Как сделать такую проверку???
Hordi
Дата: 21.06.2004 15:22:18
Проверяй наличие обычным SELECT'ом.
Как вариант связанные поля можно объявлять с действием по-умолчанию на случай удаления или обновления, типа REFERENCES ... ON DELETE SET NULL;
bjohny
Дата: 22.06.2004 08:42:05
Установка значения в null при удалении не нужна, поскольку произойдет потеря данных. Необходимо при удалении проверить возможность удаления и если запись используется в других таблицах, надо получить список таблиц(и по возможности строк) в которых использеутся удаляемая запись. Т.е. переложить все на клиента, чтобы юзеры самостоятельно освобождали связи(как пример в 1С).
bjohny
Дата: 22.06.2004 10:48:45
Ну или получить КОД(!!!) ошибки