2017-02-16 51 views
0

對於有100個表的數據庫,並且所有表都有一個名爲「country varchar(20)not null」的列。現在我們有一個前段時間拋棄的大SQL文件,所有表都沒有國家/地區列。mysql如何在SQL運行期間設置列缺省值

mysql -u root -p newDatabase < dump_sql_file.sql 

如何設置默認列值的國家=「美國」,而在運行上述命令?

改變表模式

country varchar(20) not null default "US" 

不能接受的,因爲數據庫是活的,他人使用。

難題是更改SQL文件,爲每個創建和插入命令添加country列。這是我們想要避免的。有沒有像SQL解析器,允許用戶操縱SQL文件的工具?

謝謝。

回答

0

雖然它會使INSERT慢一點,但有一種方法是爲具有country列的表編寫BEFORE INSERT觸發器,並在插入行之前設置該值。

Here的文檔爲BEFORE INSERT觸發器。