Aller au contenu

Sujets conseillés

Posté

Bonjour à tous, voila j'ai un petit problème dans une requête avec MySQL,

Donc pour faire simple, je travaille ici sur 2 tables, une table CATEGORIE et une table PRODUIT.

Le MRD :

CATEGORIE(id_cat, nom_cat)

PRODUIT(id_produit, nom_produit, #id_cat)

Il devrait donc y avoir une contrainte d'intégrité référentielle.

Le problème est que quand, avec une requête SQL, je supprime une catégorie, cela la supprime même si elle se trouve dans un produit.

Exemple :

Categorie

ID|Nom

5 |Périphérique

Produit

ID|Nom |ID_CAT

2 |Clé USB |5

Normalement je ne peux pas supprimer la catégorie "Périphérique" car elle est en lé étrangère dans produits...Pourtant avec MySQL, elle est effacée quand même.

Y a t'il un pas un moyen pour afficher un message en disant que la suppression est impossible?

J'espère avoir été assez clair. :blush:

En vous remerciant par avance de vos réponses, je vous souhaite une bonne journée.

Posté

Sauf erreur de ma part tu ne peux le faire avec mysql de base (MYISAM), il te faut dans ce cas par exemple MYSQL + INNODB et là c'est ok.

Posté (modifié)

En effet en admettant que la contrainte de clef étrangère soit bien faite, il faut que tes tables soit en innoDB

A bientôt

Modifié par Kent
Posté

D'accord, je ne conniassais pas innoDB :unsure:

Je vais donc me renseigner pour comprendre ce que c'est et comment l'applquer à ma BD.

Merci beaucoup :smartass:

Posté

Bonjour,

ou alors, ce que je fais, c'est que je liste avec PHP toutes les liens et je les supprime

Ca se fait assez vite avec une fonction qui liste les liens, qui s'appelle elle-même pour les sous-liens, et qui supprime les enregistrements.

Posté (modifié)

Autre solution si tu as le choix de la database : PostgreSQL (pour rester dans l'OpenSource) gere ca de base depuis des annees.

Modifié par destroyedlolo

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...