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

[MySQL] Effacer la table XYZ si les tables XYZ et XYZ2 existent

7 réponses
Avatar
Denis Beauregard
Bonjour,

J'ai une base avec 2 tables XYZ qui est la table habituelle et
XYZ2 qui est la nouvelle table que je viens d'ajouter à ma base.

Je voudrais effacer la table XYZ si XYZ et la table de remplacement
XYZ2 existent.


La commande suivante n'est pas bonne:

DROP TABLE `toto1` IF EXISTS `toto1` and EXISTS `toto2` ;

ni celles-ci:

IF EXISTS `toto2` THEN { DROP TABLE `toto1` IF EXISTS `toto1`; };
IF EXISTS `toto2` THEN ( DROP TABLE `toto1` IF EXISTS `toto1`; );
IF EXISTS `toto2` THEN DROP TABLE `toto1` IF EXISTS `toto1`;


Celle-ci efface les deux tables:

DROP TABLE `toto1` IF EXISTS `toto1`, EXISTS `toto2` ;



Denis

--
0 Denis Beauregard
/\/ www.francogene.com
|\ >>Adresse modifiée souvent/email changed frequently<<
/ | Société généalogique canadienne-française
oo oo Mon association a 60 ans en 2003 ! - www.sgcf.com

7 réponses

Avatar
jpaulin
DROP TABLE 'toto1' IF ((EXISTS 'toto1') AND (EXISTS 'toto2')) ??????

(pas essaye)
Avatar
Denis Beauregard
Le Fri, 04 Jun 2004 11:22:18 +0200, "jpaulin"
écrivait dans fr.comp.applications.sgbd:

DROP TABLE 'toto1' IF ((EXISTS 'toto1') AND (EXISTS 'toto2')) ??????

(pas essaye)




J'ai essayé:


Erreur

requête SQL :

DROP TABLE 'toto1' IF (
(
EXISTS 'toto1'
) AND (
EXISTS 'toto2'
)
)

MySQL a répondu:

You have an error in your SQL syntax near ''toto1' IF ((EXISTS
'toto1') AND (EXISTS 'toto2'))' at line 1


Denis

--
0 Denis Beauregard
// www.francogene.com
| >>Adresse modifiée souvent/email changed frequently<<
/ | Société généalogique canadienne-française
oo oo Mon association a 60 ans en 2003 ! - www.sgcf.com
Avatar
thierry.rouillon
Denis Beauregard nous a gentiment écrit:

Le Fri, 04 Jun 2004 11:22:18 +0200, "jpaulin"
écrivait dans fr.comp.applications.sgbd:

DROP TABLE 'toto1' IF ((EXISTS 'toto1') AND (EXISTS 'toto2')) ??????

(pas essaye)




J'ai essayé:


Erreur

requête SQL :

DROP TABLE 'toto1' IF (
(
EXISTS 'toto1'
) AND (
EXISTS 'toto2'
)
)

MySQL a répondu:

You have an error in your SQL syntax near ''toto1' IF ((EXISTS
'toto1') AND (EXISTS 'toto2'))' at line 1


Denis



essaye ceci
IF ((EXISTS 'toto1') AND (EXISTS 'toto2'))
DROP TABLE 'toto1'
--
Thierry de Champagne... pour me repondre enlevez .nospam.
Avatar
Denis Beauregard
Le Mon, 07 Jun 2004 09:06:09 +0200, "thierry.rouillon"
écrivait dans
fr.comp.applications.sgbd:

Denis Beauregard nous a gentiment écrit:

Le Fri, 04 Jun 2004 11:22:18 +0200, "jpaulin"
écrivait dans fr.comp.applications.sgbd:




essaye ceci
IF ((EXISTS 'toto1') AND (EXISTS 'toto2'))
DROP TABLE 'toto1'



Nouvelle erreur:


Erreur

requête SQL :

IF (
(
EXISTS 'toto1'
) AND (
EXISTS 'toto2'
)
) DROP TABLE 'toto1'

MySQL a répondu:

You have an error in your SQL syntax near 'IF ((EXISTS 'toto1') AND
(EXISTS 'toto2')) DROP TABLE 'toto1'' at line 1


Et si on ajoute un THEN, même chose:

Erreur

requête SQL :

IF (
(
EXISTS 'toto1'
) AND (
EXISTS 'toto2'
)
) THEN DROP TABLE 'toto1'

MySQL a répondu:

You have an error in your SQL syntax near 'IF ((EXISTS 'toto1') AND
(EXISTS 'toto2')) THEN DROP TABLE 'toto1'' at line 1



Denis

--
0 Denis Beauregard
// www.francogene.com
| >>Adresse modifiée souvent/email changed frequently<<
/ | Société généalogique canadienne-française
oo oo Mon association a 60 ans en 2003 ! - www.sgcf.com
Avatar
Thibaut Allender
on 7/06/2004 16:20, Denis Beauregard wrote :

You have an error in your SQL syntax near 'IF ((EXISTS 'toto1') AND
(EXISTS 'toto2')) DROP TABLE 'toto1'' at line 1



je ne pense pas que ca soit possible
IF EXISTS semble ne pouvoir etre associé qu'a drop, et ne concerne que
la table qu'on veut dropper

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*
Avatar
Denis Beauregard
Le Mon, 07 Jun 2004 16:45:22 +0200, Thibaut Allender
écrivait dans
fr.comp.applications.sgbd:

on 7/06/2004 16:20, Denis Beauregard wrote :

You have an error in your SQL syntax near 'IF ((EXISTS 'toto1') AND
(EXISTS 'toto2')) DROP TABLE 'toto1'' at line 1



je ne pense pas que ca soit possible
IF EXISTS semble ne pouvoir etre associé qu'a drop, et ne concerne que
la table qu'on veut dropper



J'ai fouillé dans la doc de mySQL sans rien trouver et personne sur
ce forum n'a de solution qui fonctionne. C'est tout de même étrange
vu que ma situation ne doit pas être si rare, soit de mettre à jour
une table en la remplaçant par une table et en renommant cette
dernière.

Il semble donc que ma seule solution soit d'interroger la table pour
savoir si elle existe avant de la remplacer...


Denis

--
0 Denis Beauregard
// www.francogene.com
| >>Adresse modifiée souvent/email changed frequently<<
/ | Société généalogique canadienne-française
oo oo Mon association a 60 ans en 2003 ! - www.sgcf.com
Avatar
thierry.rouillon
Denis Beauregard nous a gentiment écrit:


J'ai fouillé dans la doc de mySQL sans rien trouver et personne sur
ce forum n'a de solution qui fonctionne. C'est tout de même étrange
vu que ma situation ne doit pas être si rare, soit de mettre à jour
une table en la remplaçant par une table et en renommant cette
dernière.

Il semble donc que ma seule solution soit d'interroger la table pour
savoir si elle existe avant de la remplacer...


Denis




En fait je fais la même chose que toi mais en php... en sql je n'ai jamais
eu d'info.
--
Thierry de Champagne... pour me repondre enlevez .nospam.