Bonjour à tous,
J'ai un problème lorsque je réalise un update d'une ligne de la table 'motors'.
L'erreur citée est "unable to execute statement","foreign key mismatch".
Voici ci-dessous le code de création des deux tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE motors( mot_idName TEXT NOT NULL, mot_isDWP NUMERIC, mot_typologies NUMERIC, PRIMARY KEY(mot_idName) );L'insertion d'une ligne dans 'motors'se déroule sans problème (foreign_keys désactivées pour l'insert). Mais l'update plante avec l'erreur citée ci-dessus (foreign_keys activées pour l'update).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE sequences( seq_name TEXT NOT NULL, seq_timeout INTEGER, seq_motor TEXT, PRIMARY KEY(seq_name), FOREIGN KEY (seq_motor) REFERENCES motors(mot_idName)ON DELETE SET NULL ON UPDATE CASCADE );
Voici la commande effectuée pour réaliser l'update :
Si je supprime la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE motors SET mot_idName='test', mot_isDWP=1, mot_typologies=0 WHERE rowid=1;
Je n'ai plus d'erreur lors de l'update...
Code : Sélectionner tout - Visualiser dans une fenêtre à part FOREIGN KEY (seq_motor) REFERENCES motors(mot_idName)ON DELETE SET NULL ON UPDATE CASCADE
J'insiste sur le fait qu'il s'agit bien d'UPDATE une ligne dans la table 'motors' et non pas 'sequences'. Je précise aussi que j'ai essayé en retirant le NOT NULL de la création.
Merci infiniment aux personnes se penchant sur mon problème!
Partager