2017-02-16 1 views
0

für eine Datenbank mit 100 Tabellen festlegen, und alle Tabellen haben eine Spalte mit dem Namen "Land varchar (20) nicht null". Im Moment haben wir eine große SQL-Datei, die vor einer Weile gelöscht wurde, und alle Tabellen haben keine Länderspalte.mysql, wie Spaltenstandardwert während eines SQL-Lauf

mysql -u root -p newDatabase < dump_sql_file.sql 

Wie wird der Standardspaltenwert country = "US" beim Ausführen des obigen Befehls gesetzt?

Wicke Schema

country varchar(20) not null default "US" 

nicht akzeptabel, da die Datenbank am Leben ist und von anderen benutzt werden.

Der harte Weg ist, die SQL-Datei zu ändern, die Länderspalte für jeden erstellen und einfügen Befehle hinzufügen. Das wollen wir vermeiden. Gibt es irgendwelche Werkzeuge wie sql Parser, mit dem Benutzer SQL-Dateien manipulieren können?

Danke.

Antwort

0

Obwohl es INSERT s etwas langsamer machen würde, wäre eine Möglichkeit, BEFORE INSERT Trigger für Tabellen zu schreiben, die country Spalte haben und den Wert setzen, bevor eine Zeile eingefügt wird.

Here ist die Dokumentation für BEFORE INSERT Trigger.

Verwandte Themen