Несоответствие внешнего ключа 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.

Другие вопросы по тегам