对于具有100个表的数据库,并且所有表都有一个名为“country varchar(20)not null”的列。现在我们有一个很大的SQL文件,前一段时间被转储,所有表都没有country列。
mysql -u root -p newDatabase < dump_sql_file.sql
如何在运行上述命令时设置默认列值country =“US”?
更改表架构
country varchar(20) not null default "US"
不可接受,因为数据库还活着并被其他人使用。
困难的方法是更改SQL文件,为每个create和insert命令添加country列。这就是我们想要避免的。是否有像sql解析器这样的工具允许用户操作SQL文件?
感谢。
答案 0 :(得分:0)
虽然它会使INSERT
慢一点,但一种方法是为BEFORE INSERT
列的表写country
触发器,并在插入行之前设置值
Here是BEFORE INSERT
触发器的文档。