Upadter plusieurs tables en une seule requête SQL sous MyAdmin
traderpierre
Messages postés
316
Statut
Membre
-
traderpierre Messages postés 316 Statut Membre -
traderpierre Messages postés 316 Statut Membre -
Bonjour,
je m' explique,
Dans ma base de données, j'ai plusieurs tables ayant chacune une colonne avec le même intitulé "id_lang",
Est-il possible d'updater les colonnes id_lang sur toutes ces tables en même temps, sachant que ces collonne ne sont pas liées entre elles,
J'avais essayé de mettre toutes les requêtes correspondant à chaque table dans la même requête mais ça ne fonctionne pas :
Voici mon code SQL :
UPDATE `ps_advice_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attachment_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attribute_group_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attribute_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_badge_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_carrier_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cart_rule_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_category_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_category_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_role_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_configuration_kpi_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_configuration_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_contact_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_country_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_customization_field_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_feature_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_feature_value_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_gender_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_group_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_homeslider_slides_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_image_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_info_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_lang_shop` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_attribute_group_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_attribute_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_feature_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_feature_value_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_linksmenutop_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_link_block_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_manufacturer_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_meta_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeaude_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeaues_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeauit_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeauuk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaude_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaues_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaufr_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeauit_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeauuk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_message_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_return_state_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_state_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_product_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_profile_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_quick_access_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_reassurance_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_risk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
Si je teste sur une table individuelle ça fonctionne "une seule ligne ci dessus"
Est il possible de lancer toutes ces updates en une seule requête ???
Merci par avance
je m' explique,
Dans ma base de données, j'ai plusieurs tables ayant chacune une colonne avec le même intitulé "id_lang",
Est-il possible d'updater les colonnes id_lang sur toutes ces tables en même temps, sachant que ces collonne ne sont pas liées entre elles,
J'avais essayé de mettre toutes les requêtes correspondant à chaque table dans la même requête mais ça ne fonctionne pas :
Voici mon code SQL :
UPDATE `ps_advice_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attachment_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attribute_group_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_attribute_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_badge_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_carrier_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cart_rule_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_category_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_category_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_cms_role_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_configuration_kpi_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_configuration_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_contact_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_country_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_customization_field_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_feature_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_feature_value_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_gender_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_group_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_homeslider_slides_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_image_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_info_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_lang_shop` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_attribute_group_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_attribute_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_feature_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_layered_indexable_feature_value_lang_value` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_linksmenutop_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_link_block_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_manufacturer_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_meta_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeaude_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeaues_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeauit_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbadeauuk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaude_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaues_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeaufr_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeauit_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_multihtmlblockbandeauuk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_message_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_return_state_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_order_state_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_product_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_profile_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_quick_access_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_reassurance_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
UPDATE `ps_risk_lang` SET `id_lang`= REPLACE(`id_lang`,7,8);
Si je teste sur une table individuelle ça fonctionne "une seule ligne ci dessus"
Est il possible de lancer toutes ces updates en une seule requête ???
Merci par avance
1 réponse
-
Bonjour,
Peut être un
UPDATE `ps_advice_lang` , `ps_attachment_lang`, ... , `ps_risk_lang` SET `ps_advice_lang.id_lang`= REPLACE(`ps_advice_lang.id_lang`,7,8), `ps_attachment_lang.id_lang`= REPLACE(`ps_attachment_lang.id_lang`,7,8), ... `ps_risk_lang.id_lang`= REPLACE(`ps_risk_lang.id_lang`,7,8)
voir : https://dev.mysql.com/doc/refman/8.0/en/update.html
Avec Oracle, je ferais une procédure PL/SQL qui interrogerait le dictionnaire de données pour trouver toutes les tables ayant le champ id_lang, et qui génèrerait un update dynamique avec les tables trouvées.
Cdlt