2016-06-14 1 views
-1

Pour une raison inconnue, l'info de « INFORMATION_SCHEMA.TABLES » est pas correspondre tables réelles:Intrigué par MySQL INFORMATION_SCHEMA.TABLES information

Première, trouver table nom INFORMATION_SCHEMA.TABLES, il y a un résultat; Ensuite, sélectionnez * à partir du nom de la table, il montre que la table n'existe pas!/(ㄒ o ㄒ)/~~

J'essaie de créer une nouvelle table (moteur MyISAM) avec le même nom, ça crée OK! Ensuite, trouver le nom de table de information_schema.tables, il y a deux résultat! Et sélectionnez * du nom de la table montre l'ensemble vide, c'est normalement.

Jusqu'à présent, la table peut être utilisée, mais ne peut pas être complètement supprimée. Si drop table, il retourne le "Premier".

Comme l'image suivante: all the step

Je cherche depuis longtemps sur le net. Mais pas d'utilisation. S'il vous plaît aider ou essayer de donner quelques idées comment y parvenir ......

+0

Vous pourriez essayer d'insérer l'image directement dans la question, pas tout le monde suit les liens .. –

+0

Merci pour votre suggestion, mais je n'ai pas assez de réputation pour insérer une image directement (je pense) .../(ㄒ o ㄒ)/~~ @StefanHegny –

+0

http://dev.mysql.com/doc/refman/5.7/fr/database-use.html – GhostGambler

Répondre

1

L'image ne montre rien de mal à moi. Lorsque vous exécutez ceci:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 
TABLE_NAME = 'report_instance_performance_20160614 

et obtenir un résultat, vous obtenez probablement le résultat d'une table de ce nom dans un schéma différent de celui où vous avez exécuté cette requête. Il serait plus utile de lancer pour voir si quelque chose de mal:

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 
TABLE_NAME = 'report_instance_performance_20160614' 

Mon affirmation selon laquelle cette table existe dans un autre schéma, mais pas celui que vous utilisez dans la requête de est que vous obtenez l'erreur doesn't exist lorsque vous essayez et SELECT à partir de celui-ci.

Ensuite, lorsque vous créez une nouvelle instance de cette table, puis exécutez votre requête INFORMATION_SCHEMA.TABLES, vous obtenez deux résultats car vous avez maintenant créé une table avec ce nom dans votre schéma actuel. Si cette table existait dans votre schéma actuel, vous auriez reçu une erreur indiquant qu'une table de ce nom existait déjà dans le schéma. Cela confirme en outre mon affirmation que report_instance_performance_20160614 existe dans un schéma différent.

Enfin, puisque la table est nouvellement créée et que vous n'avez rien INSERT dans la table avant SELECT, il est tout à fait normal que la table soit vide.

+0

Oui ... vous avez raison. il y a un autre schéma ... Merci beaucoup! Je suis tellement désolé pour cette question, En raison de ma connaissance limitée de MySQL, la compréhension de "INFORMATION_SCHEMA.TABLES" n'est pas suffisante ... –

+0

Vous pouvez marquer la réponse comme correcte puis aider les autres qui viennent voir cette question :) –