Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petite Question d'ID auto

2 réponses
Avatar
JO
bonjour,
voila j'ai des tables :

Vehicule(ID :int auto ; Libelle : varchar(20)....)
Location(ID :int auto ; Libelle : varchar(20)....)
Devis(ID :int auto ; ID_Article int....)

Le champ ID_Article est une cle etrangere sur vehicule et location
Si je supprime un devis il doit supprimer les vehicules ou Location qui
ont un ID = à ID_Article.

Mais comment faire pour qu'il ne supprime que ceux qui ont un lien avec
lui. je m'explique

Vehicule
1 Renault5
2 R21
......


Location
1 Location du X au Y
2 Location du Z au U
......

je cre un devis et ajoute l'article Vehicule avec l'ID 1 du coup je me
retrouve avec
Devis 1 1

Je supprime le devis, comment va t'il savoir qu'il faut soit supprimer
la location soit le vehicule car ils ont le meme ID Auto.

La solution serait de pouvoir dire a SQL de creer un ID auto suivant
plusieurs tables. Est ce possible ?

merci

2 réponses

Avatar
Fred BROUARD
JO a écrit :
bonjour,
voila j'ai des tables :

Vehicule(ID :int auto ; Libelle : varchar(20)....)
Location(ID :int auto ; Libelle : varchar(20)....)
Devis(ID :int auto ; ID_Article int....)

Le champ ID_Article est une cle etrangere sur vehicule et location
Si je supprime un devis il doit supprimer les vehicules ou Location qui
ont un ID = à ID_Article.

Mais comment faire pour qu'il ne supprime que ceux qui ont un lien avec
lui. je m'explique

Vehicule
1 Renault5
2 R21
......


Location
1 Location du X au Y
2 Location du Z au U
......

je cre un devis et ajoute l'article Vehicule avec l'ID 1 du coup je me
retrouve avec
Devis 1 1

Je supprime le devis, comment va t'il savoir qu'il faut soit supprimer
la location soit le vehicule car ils ont le meme ID Auto.

La solution serait de pouvoir dire a SQL de creer un ID auto suivant
plusieurs tables. Est ce possible ?

merci




Utilisez une procédure stockée auquel vous passez une n° de devis et qui
fait 2 requêtes :
1) DELETE FROM MatableFille WHERE DEVIS_ID = 1
2) DELETE FROM Devis WHERE DEVIS_ID = 1

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Gilles LE BARBIER
Si je comprend bien devis est utilisé pour deux tables avec le meme ID

il y a pas un problème de conception tu as bien une info qui t'indique que
c'est un devis voiture ou location

Gilles