2017-02-16 202 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触发器。