1. Installer la base de données fournie
  2. insérer une autre station en Guadeloupe
  3. insérer une station dans une région Antilles.

Trigger

  1. implanter par un trigger la règle suivante : si le prix d’une activité baisse, alors le tarif de la station doit augmenter de la différence.
    indication : le trigger doit se déclencher sur une modification, et tester pour chaque ligne que la nouvelle valeur est plus grande que l’ancienne. Si ce n’est pas le cas, faire un UPDATE de la station pour ajouter la différence entre l’ancienne et la nouvelle valeur.
  2. Diminuer le prix d’une activité, et regarder ce qui se passe pour la station.

On veut disposer de l’information nbActivites dans la table Station. Pour cela :

  1. Ajouter la colonne nbActivites avec pour valeur par défaut 0.
  2. Créer un trigger qui maintient cette information.
  3. Interdire par un trigger l’insertion d’une ligne dans la table Séjour si le solde du client est inférieur au nombre de places multiplié par le tarif de la station.

Procédures

  1. Créer une fonction NomClient qui prend en entrée l’id d’un client et qui renvoie une chaîne contenant le prénom et le nom du client.
  2. Créer une vue qui affiche la liste des activités par station.
  3. Créer une procédure Actualiser qui prend en entrée un pourcentage et le nom d’une station et augmente le tarif de la station et le prix de chacune de ses activités du pourcentage indiqué.
CREATE TABLE IF NOT EXISTS `activite` (
`libelle` varchar(20) NOT NULL,
`prix` float NOT NULL,
`idstation` int(11) NOT NULL,
KEY `idstation` (`idstation`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `activite` (`libelle`, `prix`, `idstation`) VALUES
('voile', 16500, 2),
('plonge', 13200, 2);

CREATE TABLE IF NOT EXISTS `client` (
`nom` varchar(20) NOT NULL,
`prenom` varchar(20) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
`ville` varchar(20) NOT NULL,
`region` varchar(20) NOT NULL,
`solde` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `client` (`nom`, `prenom`, `id`, `ville`, `region`, `solde`) VALUES
('wiwi', 'titi', 1, '', '', 0),
('tata', 'toto', 2, '', '', 0),
('fogg', 'fileas', 3, 'londres', 'europe', 12000),
('Pascal', 'Blaise', 4, 'paris', 'europe', 6000);

CREATE TABLE IF NOT EXISTS `sejour` (
`idcli` int(11) NOT NULL AUTO_INCREMENT,
`station` int(20) NOT NULL,
`debut` date NOT NULL,
`nbplace` int(11) NOT NULL,
PRIMARY KEY (`idcli`,`station`),
KEY `station` (`station`),
KEY `idcli` (`idcli`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `sejour` (`idcli`, `station`, `debut`, `nbplace`) VALUES
(3, 2, '2012-12-19', 4);

CREATE TABLE IF NOT EXISTS `station` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) NOT NULL,
`capacite` int(11) NOT NULL,
`region` varchar(20) NOT NULL,
`tarif` float NOT NULL,
`lieu` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO `station` (`id`, `nom`, `capacite`, `region`, `tarif`, `lieu`) VALUES
(2, 'venusa', 350, 'antilles', 30723, 'gualoupe');

ALTER TABLE `activite`
ADD CONSTRAINT `activite_ibfk_1` FOREIGN KEY (`idstation`) REFERENCES `station` (`id`);

ALTER TABLE `sejour`
ADD CONSTRAINT `sejour_ibfk_2` FOREIGN KEY (`station`) REFERENCES `station` (`id`),
ADD CONSTRAINT `sejour_ibfk_1` FOREIGN KEY (`idcli`) REFERENCES `client` (`id`);