Несоответствие внешнего ключа SQLite
У меня есть 2 таблицы в базе данных SQLite
CREATE TABLE [Stores] (
[ID] NVARCHAR(50),
[Description] NVARCHAR(255),
[GUID] CHAR(36),
[Created] DATETIME,
[Modified] DATETIME,
[Integrated] DATETIME,
CONSTRAINT [] PRIMARY KEY ([ID]));
CREATE TABLE [PriceDef] (
[PriceNumber] INTEGER,
[Store] NVARCHAR(50) REFERENCES [Stores]([ID]) ON DELETE CASCADE ON UPDATE CASCADE,
[Description] NVARCHAR(50),
[Margin] DECIMAL,
[GUID] CHAR(36),
[Created] DATETIME,
[Modified] DATETIME,
[Integrated] DATETIME,
CONSTRAINT [] PRIMARY KEY ([PriceNumber], [Store]));
Когда я пытаюсь удалить строку в таблице Stores, я получаю исключение с этим сообщением: несоответствие внешнего ключа, в данный момент у меня есть только этот внешний ключ к таблице Stores.
Пожалуйста помоги:(
Заранее спасибо, Педро Симоес.
Спасибо Митчу, Яру и Тиму за их ответы / комментарии, на самом деле прошло много времени, и мое приложение находится в гораздо более продвинутом состоянии, проблема была решена, как сказал Тим, все объекты включены / отключены, поэтому я не Больше не нужно ничего удалять.
1 ответ
Как я написал в своем комментарии: у меня просто была похожая проблема.
Проблема заключалась в ограничении внешнего ключа некоторого другого столбца в дочерней таблице, а не в самом "каскаде удаления".
В вашем случае: вы уверены, что одна из ваших таблиц (скорее всего, дочерняя) не участвует в каких-либо других ограничениях внешнего ключа?
Похоже, SQLite проверяет все ограничения при запуске одного из них. Это на самом деле упоминается в документации. DDL против проверок ограничений DML.