Dans MySQL, je sais que je peux lister les tables dans une base de données avec:
SHOW TABLES
Cependant, je veux insérer ces noms de table dans une autre table, par exemple:
INSERT INTO metadata(table_name) SHOW TABLES /* does not work */
Existe-t-il un moyen d'obtenir les noms de table à l'aide d'une instruction SELECT standard, quelque chose comme:
INSERT INTO metadata(table_name) SELECT name FROM table_names /* what should table_names be? */
Réponses:
Pour obtenir le nom de toutes les tables, utilisez:
Pour obtenir le nom des tables d'une base de données spécifique, utilisez:
Maintenant, pour répondre à la question d'origine, utilisez cette requête:
Pour plus de détails, voir: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
la source
Essayer:
Voir: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
la source
sqlite_master
si nous avons plusieurs bases de données et que nous devons sélectionner toutes les tables pour une base de données particulière, nous pouvons utiliser
TABLE_SCHEMA
pour définir le nom de la base de données comme:select table_name from information_schema.tables where TABLE_SCHEMA='dbname';
la source
En plus d'utiliser la table INFORMATION_SCHEMA, pour utiliser SHOW TABLES pour insérer dans une table, vous utiliseriez les éléments suivants
la source
Jetez un œil au tableau
TABLES
de la base de donnéesinformation_schema
. Il contient des informations sur les tables de vos autres bases de données. Mais si vous êtes sur l'hébergement mutualisé, vous n'y avez probablement pas accès.la source
Je pense que vous pouvez obtenir les données que vous souhaitez à partir des TABLEAUX INFORMATION_SCHEMA.
Vous pouvez trouver plus d'informations ici: http://dev.mysql.com/doc/refman/5.0/en/tables-table.html
la source
la source
La
INFORMATION_SCHEMA.TABLES
table MySQL contient des données sur les tables (pas temporaires mais permanentes) et les vues. La colonneTABLE_TYPE
définit s'il s'agit d'un enregistrement pour la table ou la vue (pour les tablesTABLE_TYPE='BASE TABLE'
et pour les vuesTABLE_TYPE='VIEW'
). Donc, si vous voulez voir uniquement à partir de vos tables de schéma (base de données), il y a la requête suivante:la source
Je pense qu'il peut être utile de souligner que si vous souhaitez sélectionner des tableaux contenant des mots spécifiques, vous pouvez facilement le faire en utilisant le
SELECT
(au lieu deSHOW
). La requête ci-dessous restreint facilement la recherche aux tableaux contenant "mot-clé"la source
Il existe encore un autre moyen plus simple d'obtenir les noms de table
la source
Cette requête ci-dessous a fonctionné pour moi. Cela peut capable d'afficher les bases de données, les tables, les noms de colonnes, les types de données et le nombre de colonnes.
la source
Pour insérer, mettre à jour et supprimer, procédez comme suit:
la source