Question Interaction avec une BDD MySQL

Plus d'informations
il y a 11 ans 5 jours #19278 par Original
Bonjour à tous.

Je bosse actuellement pas mal sur un système de clustering d'une BDD MySQL. Cela implique que je dois effectuer un changement au niveau du moteur de recherche de chaque table des BDD concernés.

J'ai trouver une requête MySQL qui me génére automatiquement les différentes requêtes que je dois exécuter pour pouvoir modifier le moteur de recherches (je n'ai qu'a copier la requête suivante et cela me génére toutes les requêtes à simplement copier/coller pour les exécuter) :
[code:1]SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=NDBCLUSTER;')
FROM information_schema.TABLES
WHERE 1=1
AND engine = 'InnoDB'
OR engine = 'MyISAN'
AND table_schema NOT IN ('information_schema', 'mysql', 'performance_schema');[/code:1]

Néanmoins, cela demande d'exécuter une requête et d'en copier/coller le résultat manuellement en multi-requête, ce qui est embêtant ..
J'aimerai savoir si il n'est pas possible de faire cela automatiquement avec un script PowerShell ?

Je viens vers vous car je suis extrémement mauvais pour l'instant en PowerShell ..
Voilà un script en Bash (Linux) qui lui, fais normalement cela :

[code:1]#!/bin/bash

nombdd=$1

mysql -u user -pmotdepasse -e \"use $nombdd; show tables\" -N -B > file

command=\"use $nombdd;\"
for line in $(cat file); do
command=$command\"ALTER TABLE $line ENGINE=NBCLUSTER;\"
done

echo $command[/code:1]

Pour vous donnez peut-être une meilleur idée.

Merci de votre aide,

Original.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 5 jours #19279 par Laurent Dardenne
Salut,
consulte ce tutoriel sur le dynamisme .

PS peut remplacer ce type de construction .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 jours #19281 par Original
Réponse de Original sur le sujet Re:Interaction avec une BDD MySQL
Salut Laurent,

merci pour ta réponse.
J'ai regarder et je vais encore essayer de regarder les deux liens que tu m'as donner, merci.

Néanmoins d'un premier abord (il est tôt et j'ai pas encoire pris mon café) je n'ai pas trop compris les exemples et encore moins comment m'y prendre.

Mais je vais tenter de regarder encore un peu ..

Original.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 jours #19282 par Laurent Dardenne
Le second lien était à titre d'exemple.

Utilise la substitution dans une here-string :
[code:1]
$table_schema='Compta'
$table_name='Client'

@\"
SELECT CONCAT('ALTER TABLE ',$table_schema,'.',$table_name,' ENGINE=NDBCLUSTER;')
FROM information_schema.TABLES
WHERE 1=1
AND engine = 'InnoDB'
OR engine = 'MyISAN'
AND $table_schema NOT IN ('information_schema', 'mysql', 'performance_schema');
\"@
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 jours #19283 par Original
Réponse de Original sur le sujet Re:Interaction avec une BDD MySQL
Salut,

désolé d'avance de mon ignorance (Powershell est un point important que je dois me décider à travailler), mais pourquoi déclares-tu deux variables, Compta et Client au début ?

Sachant que le but de table_schema et table_name dans ma requête et de récupérer automatiquement le nom de table à chaque fois.

Merci de m'éclairer !

Original.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 jours #19284 par Laurent Dardenne
Original écrit:

pourquoi déclares-tu deux variables, Compta et Client au début ?

Pour l'exemple donné.
Si table_schema et table_name sont des variables dont le contenu provient d'une autre requête, il faut effectivement le prendre en considération.
Ici je t'ai juste donné le principe.

Pour ce type de demande, il nous faut savoir ce que tu as avant et ce que tu souhaite avoir après, avec un ou + exemples.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena