-- V1.5.1

PROMPT "Suppression de toutes les relations de toutes les bases de données";

-- **************************************************************************** Suppression des relations

PROMPT "Suppression de toutes les relations de la bases de données Conventions";

DROP TABLE Organigramme CASCADE CONSTRAINTS PURGE;
DROP TABLE Convention CASCADE CONSTRAINTS PURGE;
DROP TABLE Etudiant CASCADE CONSTRAINTS PURGE;
DROP TABLE Personnel CASCADE CONSTRAINTS PURGE;
DROP TABLE Societe CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les relations de la bases de données Voyages";

-- Relations supplémentaires.
DROP TABLE AncienneReservation CASCADE CONSTRAINTS PURGE;
DROP TABLE Capacite CASCADE CONSTRAINTS PURGE;

-- Relations de base.
DROP TABLE Carac CASCADE CONSTRAINTS PURGE;
DROP TABLE OptionV CASCADE CONSTRAINTS PURGE;
DROP TABLE Reservation CASCADE CONSTRAINTS PURGE;
DROP TABLE Client CASCADE CONSTRAINTS PURGE;
DROP TABLE Planning CASCADE CONSTRAINTS PURGE;
DROP TABLE Voyage CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les relations de la bases de données Gestion pédagogique";

DROP TABLE Notation CASCADE CONSTRAINTS PURGE;
DROP TABLE Enseignt CASCADE CONSTRAINTS PURGE;
DROP TABLE Prof CASCADE CONSTRAINTS PURGE;
DROP TABLE Module CASCADE CONSTRAINTS PURGE;
DROP TABLE Etudiant CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les relations de la bases de données Questionnaire";

DROP TABLE EVALUATION CASCADE CONSTRAINTS PURGE;
DROP TABLE THEMQUEST CASCADE CONSTRAINTS PURGE;
DROP TABLE THEME CASCADE CONSTRAINTS PURGE;
DROP TABLE QUESTION CASCADE CONSTRAINTS PURGE;
DROP TABLE ETUDIANT CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les relations de la bases de données S1.03";

DROP TABLE COMMUNE CASCADE CONSTRAINTS PURGE;
DROP TABLE COMPTABLE CASCADE CONSTRAINTS PURGE;
DROP TABLE AGENCE CASCADE CONSTRAINTS PURGE;
DROP TABLE EXPLOITATION CASCADE CONSTRAINTS PURGE;
DROP TABLE TRAVAILLER CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les relations de la bases de données S2.04";

DROP TABLE COMPORTE CASCADE CONSTRAINTS PURGE;
DROP TABLE COMMANDE CASCADE CONSTRAINTS PURGE;
DROP TABLE CATEGORIE CASCADE CONSTRAINTS PURGE;
DROP TABLE PRODUIT CASCADE CONSTRAINTS PURGE;
DROP TABLE CLIENTS CASCADE CONSTRAINTS PURGE;

PROMPT "Suppression de toutes les vues de la bases de données Gestion pédagogique";

DROP VIEW Q1;
DROP VIEW Q2;
DROP VIEW Q3;
DROP VIEW Q4;
DROP VIEW Q51;
DROP VIEW Q52;
DROP VIEW Q6;
DROP VIEW Q7;
DROP VIEW Q8;

PROMPT "Suppression de toutes les autres vues de n'importe quelles bases de données";

BEGIN
   FOR v IN (SELECT view_name FROM user_views) 
   LOOP
      EXECUTE IMMEDIATE 'DROP VIEW "' || v.view_name || '"';
   END LOOP;
END;
/

PROMPT "Suppression de toutes les séquences de toutes les bases de données";

BEGIN
   FOR s IN (SELECT sequence_name FROM user_sequences) 
   LOOP
      EXECUTE IMMEDIATE 'DROP SEQUENCE "' || s.sequence_name || '"';
   END LOOP;
END;
/

PROMPT "Suppression de tous les synonymes de toutes les bases de données";

BEGIN
   FOR syn IN (SELECT synonym_name FROM user_synonyms WHERE owner = USER) 
   LOOP
      EXECUTE IMMEDIATE 'DROP SYNONYM "' || syn.synonym_name || '"';
   END LOOP;
END;
/

PROMPT "Suppression de tous les index de toutes les bases de données";

BEGIN
   FOR i IN (SELECT index_name FROM user_indexes) 
   LOOP
      EXECUTE IMMEDIATE 'DROP INDEX "' || i.index_name || '"';
   END LOOP;
END;
/

PROMPT "Suppression de tous les triggers de toutes les bases de données";

BEGIN
   FOR t IN (SELECT trigger_name FROM user_triggers) 
   LOOP
      EXECUTE IMMEDIATE 'DROP TRIGGER "' || t.trigger_name || '"';
   END LOOP;
END;
/

PROMPT "Suppression de toutes les autres éventuelles relations de n'importe quelles bases de données";

BEGIN
   FOR c IN (SELECT table_name FROM user_tables) 
   LOOP
      EXECUTE IMMEDIATE 'DROP TABLE "' || c.table_name || '" CASCADE CONSTRAINTS PURGE';
   END LOOP;
END;
/

PROMPT "Vidage de la corbeille";

PURGE RECYCLEBIN;

PROMPT "Fin de suppression de toutes les relations de toutes les bases de données";