2010-01-16 7 views
2

Je souhaite copier des données de profilage dans une table que je crée dans MySql. Je veux que la table contienne les données exactes que je reçois de la commande SHOW PROFILES;MySql copie des données de profilage vers la table

Par exemple, si j'ai ceci:

mysql> show profiles; 
+----------+------------+--------------------------------+ 
| Query_ID | Duration | Query       | 
+----------+------------+--------------------------------+ 
|  16 | 0.00059700 | select * from imprumuturi  | 
|  17 | 0.00042050 | select * from imprumuturi  | 
|  18 | 0.00042000 | select * from imprumuturi  | 
|  19 | 0.00042950 | select * from imprumuturi  | 
|  20 | 0.00048050 | select * from imprumuturi  | 
+----------+------------+--------------------------------+ 
5 rows in set (0.00 sec) 

Je vais créer une table qui a 3 colonnes (ID_requête, durée et requête), et je besoin d'une commande qui copie les 5 lignes de « SHOW PROFILS; " à ma table.

insert into table (show profiles); ne fonctionne pas

J'ai besoin que cela se fasse dans MySql seul, aucun autre outil/patches.

+0

Quels messages d'erreur que vous obtenez? –

+0

J'ai obtenu ceci: ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'show profile') à la ligne 1 – Ove

Répondre

0
insert into t (select * from information_schema.profiling) 
+0

Cela ne me donnera pas les données que je veux. Votre commande insérera les différentes étapes et leur durée pour toutes les requêtes (j'obtiendrai plusieurs lignes par requête, et je ne connaîtrai pas le texte de la requête). Je veux ces colonnes: ID de requête, durée et requête. Et j'ai besoin d'une ligne par requête. Juste comme dans mon exemple. – Ove

1

INSERT INTO t (SELECT some columns DE INFORMATION_SCHEMA.PROFILING)

+0

Quelle est la colonne qui me donne le texte de la requête? – Ove

+0

Je ne sais pas parce que je n'ai pas de profilage activé, donc je ne peux pas le voir. Vous devez regarder votre table de profilage "SELECT * FROM PROFILING LIMIT 1" pour le savoir. –

+0

Je l'ai fait avant de poster ici, mais il n'y a pas une colonne qui montre le texte de la requête: | Je n'ai que l'identifiant de la requête, et j'ai besoin d'obtenir le texte. Si j'avais cela, cela serait résolu. – Ove

Questions connexes