Insertion des enregistrements dans une table Mysql
djimy_cartel
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
djimy_cartel Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
djimy_cartel Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous;
Voilà , j'ai écrit un script php qui consiste à insérer les enregistrements depuis une table appelée table1 vers une autre appelée table2 sachant que la table1 est dans la base de données "moodle" et la table2 est dans la base de données "moodle_purge". à la première exécution, la table2 est remplie, mais quand j'ajoute d'autre enregistrements à ma première table manuellement (c-à-d dans phpmyadmin) et que je tente une deuxième exécution de mon script, je remarque que ma deuxième table reste telle qu'elle est c-à-d que les nouveaux enregistrements ne s'insèrent pas.
Voici mon script:
Pouvez-vous me dire qu'est ce qui manque à celui-ci? Merci d'avance.
Voilà , j'ai écrit un script php qui consiste à insérer les enregistrements depuis une table appelée table1 vers une autre appelée table2 sachant que la table1 est dans la base de données "moodle" et la table2 est dans la base de données "moodle_purge". à la première exécution, la table2 est remplie, mais quand j'ajoute d'autre enregistrements à ma première table manuellement (c-à-d dans phpmyadmin) et que je tente une deuxième exécution de mon script, je remarque que ma deuxième table reste telle qu'elle est c-à-d que les nouveaux enregistrements ne s'insèrent pas.
Voici mon script:
<?php
include ('connection.php');//fichier de connexion
$db=mysql_select_db("moodle");//se connecter à la base de données moodle
$db=mysql_select_db ("moodle_purge");//se connecter à la base de données moodle_purge
/********création de la table2 de même structure que table1 dans la base de données moodle_purge************/
$sql_cr= "CREATE TABLE IF NOT EXISTS table2 LIKE `moodle`.`table1` ";
$res_sql_cr=mysql_query($sql_cr);
if($res_sql_cr==FALSE)
{die(mysql_error());
mysql_close();}
$sql_ins= "INSERT INTO table2 as (SELECT * FROM `moodle`.`table1` WHERE `TABLE1`.`id` >=$MIN AND `TABLE1`.`id` <=$x1 )";/*$MIN et $x1 changent à chaque nouvelle insertion dans la lable1*/
$res_sql_ins=mysql_query($sql_ins);
if($res_sql_ins==FALSE)
{die(mysql_error());
mysql_close();}
?>
Pouvez-vous me dire qu'est ce qui manque à celui-ci? Merci d'avance.
A voir également:
- Insertion des enregistrements dans une table Mysql
- Table des matières word - Guide
- Table ascii - Guide
- Touche insertion clavier - Guide
- Table des caractères - Guide
- Insertion filigrane word - Guide
3 réponses
Bonjour,
Pourquoi gérez-vous deux bases de données?
A mon avis, une seule base suffit.
Et même une seule table.
dans votre table, vous rajoutez une colonne, par exemple un champ etat avec les valeurs:
'attente' ou 'oui' ou 'non' ou 'supprimer'
Vous voulez basculer un état vers 'supprimer' depuis un IHM de gestion (en administrateur par exemple)....
Et pour la "purge", vous ferez un DELETE .... WHERE etat='supprimer'
A+
Le présent est un fragment d'éternité coincé entre le passé et le futur
Pourquoi gérez-vous deux bases de données?
A mon avis, une seule base suffit.
Et même une seule table.
dans votre table, vous rajoutez une colonne, par exemple un champ etat avec les valeurs:
'attente' ou 'oui' ou 'non' ou 'supprimer'
Vous voulez basculer un état vers 'supprimer' depuis un IHM de gestion (en administrateur par exemple)....
Et pour la "purge", vous ferez un DELETE .... WHERE etat='supprimer'
A+
Le présent est un fragment d'éternité coincé entre le passé et le futur
Salut mpmp93 ;
Merci pour ta réponse,J'utilise deux bases de données pour ne pas surcharger la première, l'année passée, quand la table1 a atteint 6 millions d'enregistrements, la base de donnée à craché, ce qui nous a causé un sérieux problème au niveau de notre établissement. Alors , cette année ,j'ai pensé à créer une autre base de données dans laquelle je créé de nouvelles tables qui vont contenir les enregistrements transférés depuis la première, j'ai pensé à laisser uniquement les 10000 derniers dans cette dernière et ceci pour éviter tout risque de surcharge.
Merci pour ta réponse,J'utilise deux bases de données pour ne pas surcharger la première, l'année passée, quand la table1 a atteint 6 millions d'enregistrements, la base de donnée à craché, ce qui nous a causé un sérieux problème au niveau de notre établissement. Alors , cette année ,j'ai pensé à créer une autre base de données dans laquelle je créé de nouvelles tables qui vont contenir les enregistrements transférés depuis la première, j'ai pensé à laisser uniquement les 10000 derniers dans cette dernière et ceci pour éviter tout risque de surcharge.
C'est assez étonnant qu'une base de donnée crashe. MySQL est assez robuste. Quelle est votre volumétrie?
De toute façon, que vous gériez une ou deux ou 10 bases, si ça crashe, ça crashe!
Une BDD est au format binaire et il faut lancer un CRON (crontab) sous UNIX/LINUX pour faire une sauvegarde des fichiers binaires, en général en tâche 1x24H de nuit....
De toute façon, que vous gériez une ou deux ou 10 bases, si ça crashe, ça crashe!
Une BDD est au format binaire et il faut lancer un CRON (crontab) sous UNIX/LINUX pour faire une sauvegarde des fichiers binaires, en général en tâche 1x24H de nuit....
Bonjour;
Désolée pour ce retard, j'étais en train d'améliore mon script, cette fois-ci, j'ai mis en sorte que ce dernier me créera une table selon la date de jour où ma table d'origine atteint ses 6 millions d'enregistrements et tout cela afin d'éviter le problème d'insertion, pour se faire , j'ai fait une petite déclaration comme celle-ci:
Voici aussi mon script d'insertion:
Je l'ai lancé dans le CRON de LINUX, ça a marché.
J'espère que je suis dans la bonne voie.
Sinon, je n'ai pas bien compris ce que vous me dites à propos de la sauvegarde des fichiers binaires, pouvez-vous me clarifier les choses SVP?
Désolée pour ce retard, j'étais en train d'améliore mon script, cette fois-ci, j'ai mis en sorte que ce dernier me créera une table selon la date de jour où ma table d'origine atteint ses 6 millions d'enregistrements et tout cela afin d'éviter le problème d'insertion, pour se faire , j'ai fait une petite déclaration comme celle-ci:
$d=date("Y_m_d"); $table_name="`moodle`.table".$d;
Voici aussi mon script d'insertion:
$sql_insert="CREATE TABLE $table_name as (SELECT* FROM `moodle`.`table1` WHERE `table1`.`id` >=$VAL_MIN AND `table1`.`id`<=$dx1)"; $res_sql_insert=mysql_query($sql_insert); if ($res_sql_insert==FALSE) {die(mysql_error()); mysql_close(); }
Je l'ai lancé dans le CRON de LINUX, ça a marché.
J'espère que je suis dans la bonne voie.
Sinon, je n'ai pas bien compris ce que vous me dites à propos de la sauvegarde des fichiers binaires, pouvez-vous me clarifier les choses SVP?