Jluis Posted February 19, 2018 Share Posted February 19, 2018 Bonjour , J'aimerais mettre à jour les tables de base de données prestashop en fonction de deux fichiers csv. le premier contient 79 lignes, le second contient 4837 lignes. J'exécute la même requête en modifiant simplement les noms des tables. Une erreur se produit lors de l'exécution de la requête avec la deuxième table: le serveur prends du temps et il se bloque et je ne peux pas supprimer certaines tables pour réessayer. Quelle était l'erreur s'il vous plaît ?? Une idée? ceci la structure des tables et les requêtes executées: //psdms_feature_value_lang table CREATE TABLE `psdms_feature_value_lang` ( `id_feature_value` int(10) unsigned NOT NULL, `id_lang` int(10) unsigned NOT NULL, `value` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; // psdms_feature_product table CREATE TABLE `psdms_feature_product` ( `id_feature` int(10) unsigned NOT NULL, `id_product` int(10) unsigned NOT NULL, `id_feature_value` int(10) unsigned NOT NULL ) // psdms_product table CREATE TABLE `psdms_product_tag` ( `id_product` int(10) unsigned NOT NULL, `id_tag` int(10) unsigned NOT NULL, PRIMARY KEY (`id_product`,`id_tag`), KEY `id_tag` (`id_tag`) ) // discounts2 : csv file2 CREATE TABLE `discounts2` ( `refe` varchar(255) NOT NULL, `designation` text, `pvht` decimal(10,3) DEFAULT NULL, `pvttc` decimal(10,3) DEFAULT NULL, PRIMARY KEY (`refe`) ) // discounts : csv file1 CREATE TABLE `discounts` ( `refe` varchar(255) NOT NULL, `prixht` decimal(10,3) DEFAULT NULL, `prixttc` decimal(10,3) DEFAULT NULL, PRIMARY KEY (`refe`) les requêtes : /* discounts : csv file 1 */ UPDATE psdms_feature_value_lang t1 LEFT JOIN psdms_feature_product t2 ON t1.id_feature_value = t2.id_feature_value LEFT JOIN psdms_product t3 ON t2.id_product = t3.id_product LEFT JOIN discounts t4 ON t3.reference = t4.refe SET value = t4.prixht WHERE t2.id_product IN ( SELECT `id_product` FROM `psdms_product` WHERE `reference` IN ( SELECT refe from discounts)) AND t2.id_feature = 442 UPDATE psdms_feature_value_lang t1 LEFT JOIN psdms_feature_product t2 ON t1.id_feature_value = t2.id_feature_value LEFT JOIN psdms_product t3 ON t2.id_product = t3.id_product LEFT JOIN discounts t4 ON t3.reference = t4.refe SET value = t4.prixttc WHERE t2.id_product IN ( SELECT `id_product` FROM `psdms_product` WHERE `reference` IN ( SELECT refe from discounts)) AND t2.id_feature = 452 /* discounts2 queries : csv file2 */ UPDATE psdms_feature_value_lang t1 LEFT JOIN psdms_feature_product t2 ON t1.id_feature_value = t2.id_feature_value LEFT JOIN psdms_product t3 ON t2.id_product = t3.id_product LEFT JOIN discounts2 t5 ON t3.reference = t5.refe SET value = t5.pvttc WHERE t2.id_product IN ( SELECT `id_product` FROM `psdms_product` WHERE `reference` IN ( SELECT refe from discounts2)) AND t2.id_feature = 452 UPDATE psdms_feature_value_lang t1 LEFT JOIN psdms_feature_product t2 ON t1.id_feature_value = t2.id_feature_value LEFT JOIN psdms_product t3 ON t2.id_product = t3.id_product LEFT JOIN discounts2 t5 ON t3.reference = t5.refe SET value = t5.pvht WHERE t2.id_product IN ( SELECT `id_product` FROM `psdms_product` WHERE `reference` IN ( SELECT refe from discounts2)) AND t2.id_feature = 442 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now