Requete sql
Résolu
cyrilherve
Messages postés
327
Statut
Membre
-
thifoolish Messages postés 79 Statut Membre -
thifoolish Messages postés 79 Statut Membre -
Bonjour,
je travail sur easyphp 2.beta. j'ai concu une application de gestion.
je vex modifer la structure de ma bd , partulierment modifier une
contrainte sur ma table PRODUITS.
a la base voici l essentiel du code sql pour ctte table :
create table PRODUITS (
Id_produits integer
Nom_categorie varchar(20),
primary key(Id_produit),
foreign key(Id_produit) references CATEGORIES )
l'essentiel du code sql pour CATEGORIES :
create table CATEGORIES
Id_categorie integer,
Nom_categorie varchar(20),
primary key (Id_categorie)
voici mon probleme :
je souhaite que ds mon prg en supprimant un categorie dont l'Id a ete reference
ds un produit ,l'id se supprime automatiquemnt ds la table produit. j'utilise la requette suivante
alter table PRODUITS (
modify foreign key(Id_categorie) references CATEGORIES
on delete cascade )
mais cette requette ne marche pas
qlqun voit qlque chose ?
je travail sur easyphp 2.beta. j'ai concu une application de gestion.
je vex modifer la structure de ma bd , partulierment modifier une
contrainte sur ma table PRODUITS.
a la base voici l essentiel du code sql pour ctte table :
create table PRODUITS (
Id_produits integer
Nom_categorie varchar(20),
primary key(Id_produit),
foreign key(Id_produit) references CATEGORIES )
l'essentiel du code sql pour CATEGORIES :
create table CATEGORIES
Id_categorie integer,
Nom_categorie varchar(20),
primary key (Id_categorie)
voici mon probleme :
je souhaite que ds mon prg en supprimant un categorie dont l'Id a ete reference
ds un produit ,l'id se supprime automatiquemnt ds la table produit. j'utilise la requette suivante
alter table PRODUITS (
modify foreign key(Id_categorie) references CATEGORIES
on delete cascade )
mais cette requette ne marche pas
qlqun voit qlque chose ?
A voir également:
- Requete sql
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Sql (+) - Forum Programmation
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
2 réponses
Bonsoir,
Les parenthèses avant modify et après cascade sont de trop.
Supprime-les, et ça devrait marcher beaucoup mieux !
Cldt.
Les parenthèses avant modify et après cascade sont de trop.
Supprime-les, et ça devrait marcher beaucoup mieux !
Cldt.
qd je supprime une categorie , son Id reste tjrs dans la table PRODUITS, donc en
fait mon ' on delete cascade ' ne marche pas. j'ai mm essaye ' on delete set null '
je n'ai pas de ' 0' aprs suppression de categorie.
j'ai essaye de supprimer à partir de mon api et mm directment avc phpmyadmin.
Les fonctionnalités SQL de ce niveau (aussi faible soit-il pour ceux qui pratiquent le sql et ses variantes tous les jours) sont mal implémentées sur phpmyadmin ou similaires.
Le mieux est d'utiliser un GUI développé par l'éditeur de ta base de données.
Comme tu utilises PHPMyAdmin, je supposes que tu travailles sous MySQL.
Un outil bien meilleur et 100000 fois plus performant (et gratuit en plus) est MySQL GUI Tools, utilisable avec MySQL Server CS (v5.0 et suivantes).
Tu gères les structures de tes tables avec MySQL Administrator (champs, clefs primaires, étrangères, contraintes d'intégrité, backup, users, configuration du serveur, etc...).
Puis tu utilises Query Browser pour faire des requêtes sur tes bases de données.
Le tout est fait en Java, par l'éditeur de la base de données MySQL, donc ultra portable et stable.
Ta requête avec le fameux "on delete cascade" a toutes ses chances d'y être interprété avec succès.
(pour peu que tu ais bien fait des tables et que tu as bien orienté ta contrainte)
Bonne journée !
just pour savoir : est que je pourais reconcevoir ma bd sous MySQL GUI Tools et l'utiliser avec easyphp
sans modifier mon code phg... je rappelle je developpe une apiweb avc easyphp.
qd j'applique un " select ..... from ...... where ....X= ' ' .... " sur une table de ma bd ,
la requtte etant integree dans mon code php et que l'elmnt compare avc X est une chaine
de caractere ,, la requete ne fournit de resultat que lorsqu'il sagit d'un chaine à un mot par
exple " disque " ; si l'elemnt compare avc X est une chaine a deux mots exple
" disque dur " ,, je n'ai aucun resultat pourtant l'elemnt se trouve dans ma base de donnée.
y a t'il une fonction php pour corriger ça ?