mysql如何在sql运行期间设置列默认值

时间:2017-02-16 21:22:17

标签: mysql import default-value

对于具有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文件?

感谢。

1 个答案:

答案 0 :(得分:0)

虽然它会使INSERT慢一点,但一种方法是为BEFORE INSERT列的表写country触发器,并在插入行之前设置值

HereBEFORE INSERT触发器的文档。