[heritage] quelle syntaxe pour les requêtes avec Mysql
Bonjour,:)
Voilà je teste la notion d'héritage sous mysql (dans un contexte php).
Voila un exemple très simple. J'ai 2 tables 'personne' et 'prospect'.
la table prospect est un sous type de personne. Les deux tables partagent donc la même clé primaire 'id_pers' qui est auto incrémentée.
Question 1 - comment insérer un nouveau prospect en une ligne de commande ?
(ex : je veux insérer Michel BRES menuisier)
Pour le moment, je ne vois qu'une solution.
J'insère d'abord michel BRES dans la table personne.
Je récupère l'id_pers créé et ensuite j'insère menuisier dans la table prospect.
via un
Code:
1 2 3
|
INSERT INTO `prospect` ( `id_pers` , `metier` )
VALUES ( id_récupéré, 'menuisier' ) ; |
Je trouve cela un peu lourd à gérer. Peut-on faire plus simple sachant que la version de mysql que j'utilise ne gère pas l'héritage.
Question 2- comment modifier tous les attributs d'un prospect en une ligne de commande ?
Ci-dessous le code sql pour créer ces tables.
Table personne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
CREATE TABLE `personne` (
`id_pers` int(11) NOT NULL auto_increment,
`nom` varchar(100) NOT NULL default '',
`prenom` varchar(20) NOT NULL default '',
PRIMARY KEY (`id_pers`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Contenu de la table `personne`
--
INSERT INTO `personne` (`id_pers`, `nom`, `prenom`) VALUES (1, 'Marrec', 'jean'),
(2, 'dupond', ''),
(3, 'durand', 'Paul'); |
table prospect
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
CREATE TABLE `prospect` (
`id_pers` int(11) NOT NULL auto_increment,
`metier` varchar(100) NOT NULL default '',
PRIMARY KEY (`id_pers`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `prospect`
--
INSERT INTO `prospect` (`id_pers`, `metier`) VALUES (1, 'joueur');
--
-- Contraintes pour les tables exportées
--
--
-- Contraintes pour la table `prospect`
--
ALTER TABLE `prospect`
ADD CONSTRAINT `FK_personne_prospect` FOREIGN KEY (`id_pers`) REFERENCES `personne` (`id_pers`) ON DELETE CASCADE ON UPDATE CASCADE; |
Par avance merci