Je dois supprimer certaines lignes d'une table. Les lignes à supprimer sont quelque chose que je découvre à travers une requête. Cependant, it appears that you cannot do both operations (select and delete) in the same query:SELECT et DELETE
Actuellement, vous ne pouvez pas supprimer d'une table et sélectionnez la même table dans une sous-requête.
Je ne peux pas le faire:
DELETE
FROM telefono
WHERE telefono_id IN (
SELECT te.telefono_id
FROM telefono te
LEFT JOIN centro_telefono ce ON te.telefono_id=ce.telefono_id AND ce.telefono_id IS NOT NULL
LEFT JOIN contacto_telefono co ON te.telefono_id=co.telefono_id AND co.telefono_id IS NOT NULL
WHERE COALESCE(ce.telefono_id, co.telefono_id) IS NULL AND te.fecha_alta < DATE_SUB(NOW(), INTERVAL 1 DAY)
);
-- SQL Error (1093): You can't specify target table for update in FROM clause
Comment puis-je mettre en œuvre ce disque de nettoyage dans MySQL pur?
Le serveur fonctionne sous MySQL 5.1.39.
Pourquoi faut-il être en MySQL "pure"? – NullUserException
@NullUserException: Je ne veux pas ajouter un niveau de complexité supplémentaire (écrire un script PHP, le configurer via cron, tester s'il fonctionne correctement ...). En outre, le code SQL peut être déclenché directement à partir d'événements MySQL ou de routines stockées. –