Mysql 用于合并多个.SQL文件的工具

Mysql 用于合并多个.SQL文件的工具,mysql,sql,unix,Mysql,Sql,Unix,现在我们有一个约5000行的.sql文件,由表、函数、触发器和其他定义/声明组成。其想法是将其拆分为多个sql文件,以避免同一文件同时被多人编辑。然后,就在构建时间之前,这些文件将被合并回一个临时文件,我们的脚本将在其中导入并创建数据库 我最初的想法是创建一个bash脚本,并以适当的顺序连接文件,以重建~5000行.sql文件,然后导入该文件。我很好奇是否有某种类型的mysql、psql或其他特定于linux的命令能够以更优雅、更干净的方式完成这项工作?很难比cat*.sql,IMHO更干净。只

现在我们有一个约5000行的.sql文件,由表、函数、触发器和其他定义/声明组成。其想法是将其拆分为多个sql文件,以避免同一文件同时被多人编辑。然后,就在构建时间之前,这些文件将被合并回一个临时文件,我们的脚本将在其中导入并创建数据库


我最初的想法是创建一个bash脚本,并以适当的顺序连接文件,以重建~5000行.sql文件,然后导入该文件。我很好奇是否有某种类型的mysql、psql或其他特定于linux的命令能够以更优雅、更干净的方式完成这项工作?

很难比
cat*.sql
,IMHO更干净。只需确保命名文件,以便shell glob将扩展到正确的包含顺序。i、 例如,如果您有
make tables.sql
load tables.sql
,那么您不能使用简单的
*
,因为这样会将
load-
放在
make-
之前

在每个文件前面加上一个数字前缀可能会让你想起旧式的基本行号,但它是有效的

01-init.sql
10-create-tables.sql
15-create-indexes.sql
20-create-functions.sql
25-create-triggers.sql
75-load-data.sql
99-run-reports.sql

或者类似的东西。

您使用的是版本控制工具吗?这并不是你问题的答案,但使用git或mercurial似乎可以解决这个问题。据我所知,@Pelshoff建议你同时使用git或mercurial(甚至SVN)编辑5000行的.SQL文件。这实际上是可行的,因为这些工具可以检测并合并对文件部分的更改。它可能比500+个.SQL文件更好。事实上,我没有完全解释我自己。谢谢你的澄清。我很感谢你的建议,但是我们已经有了一个跟踪版本的系统。我不想说得太详细,但可以说,唯一的选择是将文件拆分为5-10个较小的.sql文件,这仍然让我怀疑是否有比bash脚本更优雅的解决方案。
make
是按正确顺序将这些文件放在一起的正确工具。