Bonjour,

J'ai une table que j'aimerais remplir, celle ci a la structure suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE TABLE IF NOT EXISTS `lister12` (
  `Routage_Order` int(2) NOT NULL,
  `Equipement#` varchar(11) NOT NULL,
  `SiteGeo_Equipement` varchar(11) NOT NULL,
  `NUM_SITE_THEORIQUE1` varchar(11) DEFAULT NULL,
  `trafic` int(11) DEFAULT NULL,
  `SiteGeo_Routage` varchar(11) NOT NULL,
  `NUM_SITE_THEORIQUE2` varchar(11) DEFAULT NULL,
  `TYPE_SITE_THEORIQUE` varchar(11) DEFAULT NULL,
  KEY `NUM_SITE_THEORIQUE` (`NUM_SITE_THEORIQUE2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Les structures des tables auxquelles je fais appel sont:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
CREATE TABLE IF NOT EXISTS `lister` (
  `NUM_SITE_THEORIQUE` varchar(11) NOT NULL,
  `NUM_SITE_GEO` varchar(11) NOT NULL,
  `NUM_CI` int(11) NOT NULL,
  `STATUT_POTENTIEL` varchar(11) NOT NULL,
  `TYPE_SITE_THEORIQUE` varchar(11) NOT NULL,
  `prio` int(2) NOT NULL,
  KEY `NUM_SITE_GEO` (`NUM_SITE_GEO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--------------------------------------------
CREATE TABLE IF NOT EXISTS `v_abis_routage` (
  `Routage_Order` int(2) NOT NULL,
  `Equipement#` varchar(11) NOT NULL,
  `SiteGeo_Equipement` varchar(11) NOT NULL,
  `SiteGeo_Routage` varchar(11) NOT NULL,
  KEY `SiteGeo_Routage` (`SiteGeo_Routage`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--------------------------------------------
CREATE TABLE IF NOT EXISTS `sites` (
  `Site` varchar(11) NOT NULL,
  `PIC_TOT_TRAFIC_SEM` int(11) DEFAULT '0',
  `Poids_Image` int(11) DEFAULT '0',
  PRIMARY KEY (`Site`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Ma requête est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
REPLACE INTO lister12
SELECT v_abis_routage.Routage_Order,
       v_abis_routage.`Equipement#`,
       v_abis_routage.SiteGeo_Equipement,
	   (SELECT lister.NUM_SITE_THEORIQUE
        FROM lister
        WHERE lister.NUM_SITE_GEO=v_abis_routage.SiteGeo_Equipement
        ORDER BY lister.prio DESC
        LIMIT 1) AS NUM_SITE_THEORIQUE1,
	   (SELECT sites.PIC_TOT_TRAFIC_SEM
        FROM sites, lister12
        WHERE lister12.NUM_SITE_THEORIQUE1=sites.site
        ) AS trafic,
	   v_abis_routage.SiteGeo_Routage,
       (SELECT lister.NUM_SITE_THEORIQUE
        FROM lister
        WHERE lister.NUM_SITE_GEO=v_abis_routage.SiteGeo_Routage
        ORDER BY lister.prio DESC
        LIMIT 1) AS NUM_SITE_THEORIQUE2,
       (SELECT lister.TYPE_SITE_THEORIQUE
        FROM lister
        WHERE lister.NUM_SITE_GEO=v_abis_routage.SiteGeo_Routage
        ORDER BY lister.prio DESC
        LIMIT 1) AS TYPE_SITE_THEORIQUE
FROM v_abis_routage
L'erreur générée est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#1048 - Le champ 'trafic' ne peut être vide (null)
Donc je change la structre du champs `trafic`:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ALTER TABLE  `lister12` CHANGE  `trafic`  `trafic` INT( 11 ) NULL
Je n'ai plus d'erreur mais le résultat est que tous les enregistrements de ce dernier champ prennent "NULL" comme valeur.
Quelle est la solution pour que j'ai les bonnes valeurs dans le champ `trafic`??

Merci.