J'ai des milliers de tables dans la base de données. Certains noms se terminent par _History
.
Par exemple :
abc_History
bcd_History
123_History
Comment trouver toutes les tables dont le nom se termine par _History
.
Quelque chose comme:
SELECT
table_name
FROM sys.tables WHERE table_name LIKE '_History%'
Et
error : Invalid column name 'table_name'.
Essaye ça:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables
WHERE TABLE_NAME LIKE '%_History'
OU
SELECT name
FROM sys.tables
WHERE name LIKE '%_History'
Merci à @ Saharsh-shah.
Pour obtenir le nom de la table avec tous les noms de colonnes dans la même requête, utilisez ceci:
SELECT
`TABLE_NAME`,
group_concat(`COLUMN_NAME` separator ',') AS `COLUMNS`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_NAME` IN(
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables
WHERE `TABLE_NAME` LIKE '%_History'
)
GROUP BY `TABLE_NAME`
Vous pouvez le placer très simplement dans un tableau multidimensionnel PHP avec les éléments suivants:
$tables['columns'] = explode(',', $tables['columns']);
J'espère que cela peut aider certains.