2016-03-30 2 views
0

Я получаю сообщение об ошибке SQLite «Ограничение FOREIGN KEY failed». Это полная информация об ошибках (помимо части запроса SQL), и это не полезно. (На самом деле это так же хорошо (или плохо), как сообщения об ошибках Oracle.) Мне нужно знать имя ограничения, чтобы исследовать проблему в моей программе. К сожалению, нет платформы поддержки веб-сайтов, чтобы обсудить это с сообществом SQLite. Кто-нибудь знает, как получить дополнительную информацию об ошибке из этой библиотеки SQLite?Подробности для ошибки SQLite «Ограничение FOREIGN KEY failed failed»

Я специально использую библиотеку System.Data.SQLite для .NET, но сообщение об ошибке приходит непосредственно из ядра, и нет никаких дополнительных свойств исключения, которые могли бы мне помочь.

ответ

2

В связи с тем, что в SQLite реализованы отложенные ограничения FK, эта информация недоступна при возникновении ошибки.

Вы можете переопределить проверки FK как триггеры. В качестве альтернативы, зарегистрируйте значения в команде fail и найдите данные вручную.

+0

В случае сбоя UNIQUE, я получаю сообщение об ошибке с именем и названием столбца. Я думаю, что FOREIGN KEY немного сложнее, поэтому он не отображает эту информацию. – nschwan94