2012-10-24 4 views
1

Impossible de supprimer l'enregistrement de sqlite db à l'aide de Navicat. L'erreur se lit comme suit: `contrainte d'erreur n'a pas »Impossible de supprimer l'enregistrement de sqlite db à l'aide de Navicat

je reçois la même chose si je tente de supprimer la console à l'aide d'une commande SQL:

sqlite> delete from myTable where sort = '965'; 
constraint failed 
sqlite> 

toute idée pourquoi cela pourrait se produire.

merci pour l'aide

Répondre

1

Il ressemble à cette table a un champ qui est référencé comme FK dans une autre table, de sorte que le SQlite dire

"I can,'t delete it, its inuse in another table" 
+0

oui, vous avez raison. il y a un myTable_id dans une autre table catalogue_myTable. devrais-je supprimer cette référence en premier? merci :) – hanumanDev

+2

oui ... d'abord supprimer cette référence. –

1

Utilisez la commande .schema de la coquille sqlite3 à afficher toutes les définitions de table. Ensuite, vous pouvez voir quelle contrainte sur myTable ou une table enfant vous bloque de la suppression. Si une contrainte de clé étrangère existe dans une autre table, vous devez supprimer tous les enregistrements de cette table qui référencent votre enregistrement 965 avant de pouvoir supprimer l'enregistrement lui-même.

Questions connexes