2 questions MySQL : Vue et Suppression

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Imaginons qu'on aie une vue qui s'appuie sur plusieurs tables, et qu'une des lignes d'une de ces table est modifiée, est-ce que la vue serait modifiée automatiquement en conséquence ou bien il faut lui faire un refresh ?

Autre question : imaginons on a une table Garages, et une tables Voitures, (Il y a des voitures dans chaque garage). Comment faire pour que si je supprime un garage, les voitures qui sont dedans soient automatiquement supprimées de la table Voitures ?

Merci :)

Cette réponse a aidé l'auteur du sujet

Pour ta seconde question, il faut choisir l'option "ON DELETE CASCADE ON UPDATE CASCADE" comme contrainte pour la table "voitures" :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
CREATE TABLE IF NOT EXISTS `garages` (
  `g_id` int(11) NOT NULL AUTO_INCREMENT,
  `g_name` varchar(45) NOT NULL,
  PRIMARY KEY (`g_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `voitures` (
  `v_id` int(11) NOT NULL AUTO_INCREMENT,
  `v_name` varchar(45) NOT NULL,
  `g_id` int(11) NOT NULL,
  PRIMARY KEY (`v_id`,`g_id`),
  KEY `fk_voitures_garages_idx` (`g_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

ALTER TABLE `voitures`
  ADD CONSTRAINT `fk_voitures_garages` FOREIGN KEY (`g_id`) REFERENCES `garages` (`g_id`) ON DELETE CASCADE ON UPDATE CASCADE;

Dans ce cas, lorsque l'on supprime un garage, la ou les voiture(s) associé(s) à ce dernier est / sont automatiquement supprimée(s) de la table "voitures".

HTTP/1.1 418 I'm a teapot

+1 -0

Cette réponse a aidé l'auteur du sujet

Imaginons qu'on aie une vue qui s'appuie sur plusieurs tables, et qu'une des lignes d'une de ces table est modifiée, est-ce que la vue serait modifiée automatiquement en conséquence ou bien il faut lui faire un refresh ?

à ma connaissance, les vues mysql ne sont (malheureusement) qu'un simple alias d'une requete, donc ta requete est appelé à chaque fois que tu utilises la vue.

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte