Insertion en auto-référence avec condition where
Bonjour à tous,
Je travaille actuellement sur une application concernant une société exploitant un réseau de bus, j'ai donc une table ligne selon cette structure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| --
-- Structure de la table `ligne`
--
CREATE TABLE IF NOT EXISTS `ligne` (
`ID_LIGNE` int(11) NOT NULL AUTO_INCREMENT,
`ID_DATE` int(11) NOT NULL,
`NUMERO_LIGNE` varchar(100) NOT NULL,
`NOM_LIGNE` varchar(100) NOT NULL,
`DISTANCE_FIXE` int(11) DEFAULT NULL,
`DISTANCE_SAD_THEORIQUE` int(11) DEFAULT '0',
`TX_SAD` float DEFAULT NULL,
`DISTANCE_SS_TRAITEE` int(11) DEFAULT '0',
`NOMBRE_COURSES_TOTALE` int(11) DEFAULT NULL,
PRIMARY KEY (`ID_LIGNE`),
UNIQUE KEY `AK_INFOS_LIGNE` (`ID_DATE`,`NUMERO_LIGNE`)
) ENGINE=InnoDB DEF |
Chaque ligne existe donc à un mois donné (le couple MOIS-ANNEE correspondant à un et seul ID_DATE), ce qui pose le problème suivant : le client doit chaque mois recréer les lignes de bus une par une à travers les formulaires prévus à cet effet.
J'ai donc pensé à la solution suivante pour simplifier le processus : le client choisit un mois et une année, à partir de l'ID_DATE récupéré le système récupère les informations concernant les lignes du mois précédent (ID_DATE - 1) et insére ces données pour le mois choisit.
Exemple : le client choisit de créer les lignes du mois de Septembre 2011, le système récupère les informations des lignes de Août 2011 (le mois précédent) et insère ces donnés pour Septembre 2011.
Je dois donc effectuer une insertion en auto-référence mais je ne comprends pas comment intégrer les where correctement (un pour le SELECT et un pour le INSERT).
Code:
1 2 3
| SELECT NUMERO_LIGNE, NOM_LIGNE, DISTANCE_FIXE, DISTANCE_SAD_THEORIQUE
FROM LIGNE
WHERE ID_DATE = ID_DATE_PRECEDENT |
Code:
1 2 3 4
| INSERT INTO LIGNE (NUMERO_LIGNE, NOM_LIGNE, DISTANCE_FIXE, DISTANCE_SAD_THEORIQUE)
//le résultat du SELECT ci-dessus
FROM LIGNE
WHERE ID_DATE = ID_DATE_SELECTIONNE |
Le manuel MySQL me laisse penser qu'il faut renommer la table ligne mais je n'ai pas plus d'informations concernant l'utilisation des where et tout ce que j'ai essayé pour l'instant a échoué, je m'en remet donc à vous en espérant avoir été assez explicite !
Merci d'avance !