Suppression dans deux tables

Résolu
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 16 déc. 2008 à 19:14
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 16 déc. 2008 à 22:50
Hello!

J'ai trois tables :

Employés (NomE, prenomE, n°employeE,adresse,statut)
Caissiers ( N°employeC,n°caisse)
Reassortisseurs (N° employeR, Ndepartement)

Je voudrais supprimé les données d'un employé qui serait un caissier, donc faire une suppression sur deux tables.

J'ai testé:

Delete from caissiers,employes where nemployee='3615' and nemployeC='3615';

Delete from caissiers,employes where nemployeC.Caissiers=nemployeE.Employes and NomE='Deschamps';

A chaque fois il y a un 'problème de syntaxe au niveau de la virgule entre caissiers/employés'.

Comment je pourrais faire?


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CUsers%5CSowilo%5CAppData%5CLocal%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
font-style:italic;
mso-bidi-font-style:normal;}
@page Section1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
Merci!

Cile

11 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2008 à 21:49
Salut

Le delete fonctionne table par table.
Tu peux utiliser une transaction pour securiser le tout.

Ou a la limite des foreignkey delete cascade.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2008 à 21:53
union c'est pour des select
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2008 à 22:02
si tu fais un delete de ton caissier
et apres de ton employe

et par hasard ton employé ne peut etre supprimé par exemple
il est chef d'autres employés (il est en cle etrangere d'une autre table)

Donc la suppression est impossible

Donc le caissier n'est pas detruit car la transaction annule la destruction.
Car dans le cas contraire tu resterais avec un employe qui se serait plus rien
(pas caissier )


esperant avoir ete clair
3
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 21:52
On pourrait utiliser 'Union' pour lier les deux requêtes?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 21:54
Bon je pouvais rêver!
Qu'est-ce que tu voulais dire par 'transaction pour sécuriser le tout'?
0
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 22:04
Ah j'ai saisi! Merci
0
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 22:31
Il n'y a aucun moyen de faire cette opération sur PostgreSQL?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2008 à 22:34
Quelle opération

Les transactions si?

http://www.java2s.com/Code/PostgreSQL/Transaction/Committingatransaction.htm
Par exemple

recherche

COMMIT & ROLLBACK
0
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 22:35
Pas seulement la transaction mais la suppression tout court. Ou bien c'est aussi delete table par table?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 déc. 2008 à 22:38
La doc est ta premiere source.
On consulte avant de poser une question

Merci d'y réflechir.
http://www.postgresql.org/docs/7.4/interactive/sql-delete.html
http://www.postgresql.org/docs/8.2/static/ddl-constraints.html
0
MissCile Messages postés 8 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 22:50
Ok merci! Même si je ne suis pas certaine que le programme Putty dont je dispose prenne tout ce qui concerne Postgre'
0
Rejoignez-nous