J'ai deux tables mysql qui ont toutes deux un typeID en commun. Je veux tout sélectionner dans ces deux tables avec le même typeID, requête ci-dessous:
SELECT ta.requiredTypeID, ta.typeID, ta.quantity
FROM `invtypes` as t, `typeactivitymaterials` as ta
WHERE volume > 0 AND t.typeID = ta.typeID;
Cela me donne les résultats corrects mais j'essaie d'exporter cette requête en tant qu'instructions d'insertion. J'ai essayé d'ajouter INTO OUTFILE "/ path /" mais cela exporte uniquement les données en tant que données séparées par des tabulations/virgules, est-il possible d'exporter ces données en tant qu'instructions d'insertion?
À votre santé
Eef
Vous pouvez combiner INSERT avec SELECT pour insérer des enregistrements directement à partir du résultat d'une instruction select.
La façon dont vous le faites serait quelque chose comme ceci:
INSERT INTO newtable (requiredTypeID, typeID, quantity)
SELECT ta.requiredTypeID, ta.typeID, ta.quantity
FROM `invtypes` as t, `typeactivitymaterials` as ta
WHERE volume > 0 AND t.typeID = ta.typeID;
Voici un lien vers la --- page de manuel MySQL .
Notez que cela ferait en fait l'insertion tout de suite; il ne ferait pas exactement ce que vous demandiez (qui est de générer les instructions d'insertion pour une utilisation ultérieure).
Vous pourrez peut-être utiliser mysqldump
à la place. Consultez les paramètres --tables
et --where=
.
Si vous avez MySQL Workbench, il peut générer des instructions d'insertion pour vous.
Dans l'éditeur SQL, exécutez votre requête, puis à partir du jeu de résultats, vous pouvez cliquer sur le bouton d'exportation. Ensuite, dans le "Enregistrer en tant que type", sélectionnez "Instructions SQL INSERT (* .sql)". Cliquez sur Enregistrer, confirmez la table que vous exportez et cliquez sur OK.
Si vous ouvrez le fichier, vous devriez voir votre jeu de résultats sous forme d'instructions d'insertion avec les noms de colonne.
Je n'ai testé cela que sur une simple sélection * du tableau. Je n'ai pas testé cela avec plusieurs tables. J'espère que ça aide.
EDIT: On dirait que Workbench est disponible pour Windows, OSX et Linux (merci vcardillo)
Laissez-le ici, si quelqu'un cherche la requête exacte pour créer une requête MySQL
export
en tant qu'instructions insert
. Cette réponse utilise mysqldump
comme suggestion @ a'r.
mysqldump -u<user-name> -p<password> mydb t1 t2 t3 > mydb_tables.sql
Vous pouvez faire quelque chose comme ça:
select
concat(
concat(
concat(
concat(
concat(
concat('insert into <table> (requiredTypeID, typeID, quantity) values ("'
,ta.requiredTypeID)
,'", "')
,ta.typeID)
,'", "')
,ta.quantity)
,'")')
FROM
`invtypes` as t, `typeactivitymaterials` as ta
WHERE
volume > 0 AND t.typeID = ta.typeID;
INTO OUTFILE 'file_name'
Je sais que c'est moche mais je pense que ça résout ton cas :)