Selection de plusieurs millions de lignes
Bonjour,
Je travaille sur un script permettant de selection des données d'un table et la mise à jour d'une autre table avec les données précedement selectionnés
voici la requête pour que vous puisse comprendre facilement ce que je veux faire
Code:
1 2 3 4 5 6
|
update contact c
set c.flag_mail = 1, c.date_mail =
select distinct date_envoi
FROM flag_envoi_mail
where flag_envoi_mail.id_contact = c.id_contact |
Je voudrais mettre à jour la table contact avec les données de la table flag_envoi_mail
le soucis c'est que la table flag_envoi_mail contient plus de 8 millions de ligne
J'obtient l'erreur suivant :
J’implémente ce requete dans un script php qui interroge la table mysq et
j'ai ajouté ça dans le fichier setting.php
Code:
ini_set('memory_limit', '250M');
mais sans résultat
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
function synchro()
{
$tab = array();
$query = "SELECT DISTINCT id_contact,date_envoi FROM flag_envoi_mail ";
//print $query; exit;
$result = db_query($query);
while ($data = db_fetch_object($result)) {
$tab[$data-> id_contact] = $data->date_envoi;
}
return $tab;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
function principale_synchro()
{
foreach(synchro() as $key=>$val)
{
$query = "update contact set flag_mail = 1 , date_mail = '".$val."'
WHERE id_contact = '".$key."' ";
print $query . "<br />";
//db_query($query);
}
} |
jobtient l'erreur suivant :
PHP Fatal Error: Allowed memory size of 8388608 bytes exhausted ....
Comment puis-je executer ce script , utilisation d'ajax ou autre ?
merci d'avance pour votre aide