Aller au contenu

[Environ résolu] Problème d'insertion dans la BD


Recommended Posts

Bonjour tout le monde.

Voilà mon problème.

J'ai deux tables (A et B ) qui sont reliées par une clé étrangère.

Lorsque j'insère un enregistrement A et que la clé étrangère correspond à une clé primaire de la table B => aucun souci

Cependant, l'enregistrement A ne doit pas obligatoirement être relié à la table B. Je voudrais donc dans ce cas donner la valeur -1 à la clé étrangère.

Mais quand j'essaie de procéder ainsi, l'insertion ne se fait pas (je n'ai pourtant aucune erreur dans l'appli).

Si, par contre, je donne à la clé étrangère une valeur en dur qui existe, ça fonctionne.

Je suis en train de perdre la boule :rolleyes:

Help!

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprends pas trop ce que tu veux dire ni ce qu'unsigned signifie.

S'il s'agit du type de données, ma clé étrangère est en integer.

Je précise aussi que quand j'utilise SQLite Manager (extension Firefox dans laquelle j'importe la BD de mon appli pour faire des tests), j'arrive à insérer la valeur -1 à la clé étrangère.

C'est vraiment au niveau de mon appli que ça bloque.

Lien vers le commentaire
Partager sur d’autres sites

Unsigned signifie qu'il s'agit d'une variable non signée, qui n'accepte donc pas les nombres négatifs. Il aurait pu s'agir ici d'un usigned int ;)

Pour ce qui est des BDD, j'avoue ne pas me souvenir de la façon dont on stipule ce paramètre précisément :/ Mais si c'est un unsigned, il doit y avoir un truc du genre [uNSIGNED] quelque part quand tu visualises ta table.

Au pire essaye de mettre genre 2 000 000 000 à la place de -1 (tu ne dois pas avoir de clef à cette valeur je pense et ça reste dans le champs de valeurs d'un integer) et comme ça tu verras si c'est la requête d'ajout qui donne l'impression de passer ou si le problème est ailleurs (d'ailleurs, doit y avoir un moyen de savoir si une requête a été traitée correctement).

Lien vers le commentaire
Partager sur d’autres sites

Ah ok. Non il ne s'agit pas d'un unsigned.

En fait, j'ai déjà essayé ta solution. Que je mettes -1 ou 5 ou 1'000'000, le problème reste le même. Si ce chiffre ne correspond à aucune clé primaire de la table B, l'enregistrement ne passe pas. :emo_im_undecided:

Lien vers le commentaire
Partager sur d’autres sites

J'ai finalement procédé de la sorte : créer dans la table B un enregistrement portant le nom "Non défini" que l'utilisateur choisit s'il ne veut pas lier à un véritable enregistrement.

Un peu moins propre que la solution que je voulais au départ mais plus simple. De plus, cet enregistrement va m'être utile pour une autre fonctionnalité de l'appli.

Merci tout de même de ta tentative d'aide! :lol:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...