2016-04-24 6 views
2

Ich möchte fragen, ob es eine Möglichkeit gibt, eine Tabelle mit demselben Schema zu mehreren Datenbanken auf dem gleichen Server hinzuzufügen, und wenn es möglich ist, z. eine Spalte zu einer bestimmten Tabelle erneut in vielen Datenbanken, die auf demselben Server vorhanden sind. Gibt es dafür eine Anfrage oder ist das unmöglich?Massenerstellung Tabelle in vielen Datenbanken in demselben Server

+0

Sie könnten Tabellen aus der internen 'information_schema'-Datenbank verwenden und eine Massenanweisung erstellen. –

Antwort

2

Für Tabellenerstellung:

select group_concat(
    concat('create table `', db.schema_name, '`.X (a int, b int);') separator '\n' 
) as qry 
from information_schema.schemata db 
where db.schema_name in ('test', 'test_db'); 

Erstellt Ergebnis:

create table `test`.X (a int, b int); 
create table `test_db`.X (a int, b int); 

Kopieren Sie das Ergebnis und auszuführen.

So können Sie eine ALTER Massenabfrage erstellen.

+0

vielen Dank für die schnelle Antwort. Ich habe einige Fragen: schema_name ist der Name der Datenbank ('test', test_db), die ich brauche, um die Tabelle zu erstellen, .X ist der Name der Tabelle und a, b sind die Spalten? –

+0

Korrigieren. Sie können eine andere Bedingung wie 'where db.schema name wie 'project _%'' verwenden. Aber ich denke, eine weiße Liste ist der bessere Weg für diese kritische Aufgabe. –

Verwandte Themen