Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. DROP TABLE Chantier;
  2. DROP TABLE Projet;
  3. DROP TABLE Client;
  4. DROP TABLE Architecte;
  5. DROP TABLE Artisan;
  6.  
  7.  
  8.  
  9.  
  10. CREATE TABLE Client (
  11. idClient int PRIMARY KEY,
  12. nom varchar(20),
  13. prenom varchar(20),
  14. adresse varchar(100)
  15. );
  16.  
  17. CREATE TABLE Architecte (
  18. idArchitecte int PRIMARY KEY,
  19. nom varchar(20),
  20. prenom varchar(20),
  21. fonction varchar(20),
  22. adresse varchar(100),
  23. dateEmbauche varchar (10),
  24. commission int
  25. );
  26.  
  27. CREATE TABLE Projet (
  28. idProjet int PRIMARY KEY,
  29. intitule varchar(50),
  30. montant int,
  31. etat varchar(20),
  32. idClient int,
  33. idArchitecte int,
  34. CONSTRAINT fk_idclient
  35. FOREIGN KEY (idclient)
  36. REFERENCES Client(idClient),
  37. CONSTRAINT fk_idarchi
  38. FOREIGN KEY (idArchitecte)
  39. REFERENCES Architecte(idArchitecte)
  40. );
  41.  
  42. CREATE TABLE Artisan (
  43. idArtisan int PRIMARY KEY,
  44. nom varchar(20),
  45. adresse varchar(100),
  46. corpsMetiers varchar(30)
  47. );
  48.  
  49. CREATE TABLE Chantier (
  50. idProjet int,
  51. idArtisan int,
  52. budget int,
  53. date_debut varchar(10),
  54. date_fin varchar(10),
  55. CONSTRAINT PK_Chantier PRIMARY KEY (idProjet,idArtisan),
  56. CONSTRAINT fk_idprojet
  57. FOREIGN KEY (idProjet)
  58. REFERENCES Projet(idProjet),
  59. CONSTRAINT fk_idartisan
  60. FOREIGN KEY (idArtisan)
  61. REFERENCES Artisan(idArtisan)
  62. );
  63.  
  64. CREATE TRIGGER trigInsertProjet after insert on Projet for each row
  65. begin
  66. dbms_output.put_line('Un nouveau projet est créé');
  67. end;
  68. /
  69.  
  70. CREATE TRIGGER trigBudgetProjet after insert on Chantier for each row
  71. declare
  72. oldMontant integer;
  73. newMontant integer;
  74. begin
  75. SELECT montant INTO oldMontant FROM Projet WHERE idProjet = :NEW.idProjet;
  76. newMontant := oldMontant + :NEW.budget;
  77. UPDATE Projet SET montant = newMontant WHERE idProjet = :NEW.idProjet;
  78. end;
  79. /
  80.  
  81. CREATE TRIGGER trigCommissionArchi after update on Projet for each row
  82. begin
  83. IF :NEW.etat = 'terminé' THEN
  84. UPDATE Architecte SET commission = :NEW.montant * 0.1 WHERE idArchitecte = :NEW.idArchitecte;
  85. END IF;
  86. end;
  87. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement