Bonjour à tous,
J'essaie sur mysql d'alléger la table énorme d'une base de données.
Les enregistrements à effacer se comptent par plusieurs dizaines de milliers, et il serait trop long et fastidieux de les effacer avec phpmyadmin par interface graphique.
Je précise que la table concerne un site en xoops, les tables sur lesquelles je veux travailler sont :
xoops_priv_msgs et xoops_users
La table dont je veux supprimer des enregistrements est la table xoops_priv_msgs, en fonction des valeurs trouvées dans la table xoops_users.
J'arrive à sélectionner les champs correspondants grâce à cette commande :
ou encore cette commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT msg_id, msg_image, subject, from_userid, to_userid, msg_time, msg_text, read_msg FROM xoops_priv_msgs LEFT JOIN xoops_users ON xoops_priv_msgs.to_userid=xoops_users.uid WHERE from_userid=1 AND subject='[Mon site] Forums auto-notify : Nouvel envoi dans le forum' AND last_login<=1229471387
Je voudrais utiliser la syntaxe DELETE pour effacer les champs qui me sont retournés en remplaçant donc le SELECT par un DELETE, mais je m'interroge sur la syntaxe exacte à utiliser pour que ce soit bien les enregistrements concernés de la table xoops_priv_msgs qui soient effacés, et non des enregistrements de la table xoops_users (là ça serait carrément la merde ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT msg_id, msg_image, subject, from_userid, to_userid, msg_time, msg_text, read_msg FROM xoops_priv_msgs, xoops_users WHERE xoops_priv_msgs.to_userid=xoops_users.uid AND from_userid=1 AND subject='[AquaSquale] Forums auto-notify : Nouvel envoi dans le forum' AND last_login<=1229471387
J'avais pensé à ça :
Si quelqu'un pouvait me dépanner sur cette syntaxe ça serait cool, merci d'avance aux bonnes âmes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DELETE xoops_priv_msgs.msg_id xoops_priv_msgs.msg_image (ainsi de suite pr chaque champ) FROM xoops_priv_msgs, xoops_users WHERE xoops_priv_msgs.to_userid=xoops_users.uid AND from_userid=1 AND subject='[MonSite] Forums auto-notify : Nouvel envoi dans le forum' AND last_login<=1229471387
Partager