Bonjour
je travaille sous Visual Studio en VB.Net sur une appli fonctionnant avec une BdD créée sous SQLite, celle-ci ayant été créée sous SQlite Expert (j'utilise parfois SQlite ADministrator également)
J'ai 2 tables reliées par une relation de 1 à plusieurs. La relation est déclarée dans avec une contrainte de Update et Delete en cascade visible dans SQlite Expert comme ceci :
Lorsque je supprime un enregistrement par le code, dans tableparent, je m'attends à ce que les enregistrements de la tableenfants soient également supprimés. Or il n'en est rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE tableenfant ( [cléprimaire] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, [cléexterne] INTEGER CONSTRAINT [tableparent-tableenfant] REFERENCES tableaparent([cléexterne]) ON DELETE CASCADE ON UPDATE CASCADE, [autrechamp1] TEXT NOT NULL, [autrechamp2] REAL, [autrechamp3] [VARCHAR(50)], [autrechamp4] INTEGER NOT NULL);
Je précise que je suis assez novice sur SQLite et VB.NET donc j'ai peut-être raté un truc élémentaire, mais je ne sais pas trop où chercher
Si qqun peut m'aider, je lui en serais très reconnaissant.
EDIT: j'ai vu qu'on peut le faire avec des triggers, mais j'ai aussi vu que, depuis peu, SQlite gère les foreign keys à condition de taper qqch comme :
Mais je n'ai pas compris où l'on tape cette instruction quand on est en VB.NET
Code : Sélectionner tout - Visualiser dans une fenêtre à part pragma foreign_keys=on
Partager