J'ai un message d'erreur avec cette requete :
Code:
1
2
3 DROP TABLE Matieres WHERE EXISTS(SELECT table_name FROM information_schema.tables WHERE table_schema='public' and table_name = 'matieres') ;
Version imprimable
J'ai un message d'erreur avec cette requete :
Code:
1
2
3 DROP TABLE Matieres WHERE EXISTS(SELECT table_name FROM information_schema.tables WHERE table_schema='public' and table_name = 'matieres') ;
la requete DROP TABLE ne prend pas de condition ! :tutoriel: http://sql.developpez.com/sqlaz/ddl/?page=partie2#L7.6
ok , il y aurait il une solution ?
ben que veux-tu faire à part supprimer cette table Matieres ? carfonctionne tres bien, comme l'indique le lien que je t'ai donnéCode:DROP TABLE Matieres;
En fait comme je travaille sur php si je fais drop table matieres et que cette table n'existe pas ca va me donner une erreur , je veux donc faire un petit test avant pour m'assurer qu'elle existe .
En sql server il y avait :
Code:if exists(requete) drop table matieres ;
ben tu balances ta requete DROP TABLE Matieres; avec un @ pour eviter l'affichage des messages d'erreurs :
à part ça je vois pas... car autrement l'autre solution est bien sûr de le faire en 2 requetes, mais je ne pense pas que ça t'interesse, sinon tu l'aurais fait depuis longtemps...Code:@pgsql_query("DROP TABLE Matieres");
Essaye une petite procedure stockée ...
Code:
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE FUNCTION "dropmatiere()" RETURNS void RETURNS AS' BEGIN if exists(SELECT table_name FROM information_schema.tables WHERE table_schema=''public'' and table_name = ''matieres'') then DROP TABLE Matieres; end if; RETURN NULL; END; 'LANGUAGE 'plpgsql';