Jump to content

prestashop database break down


Recommended Posts

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...