mysql - 合并多个 .SQL 文件的工具

标签 mysql sql unix

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

我最初的想法是创建一个 bash 脚本并以适当的顺序连接文件以重建大约 5000 行的 .sql 文件,然后可以将其导入。我很好奇是否有某种类型的 mysql、psql 或其他 linux 特定命令能够以更优雅和更简洁的方式执行此操作?

最佳答案

恕我直言,很难比 cat *.sql 更干净了。只需确保命名文件,以便 shell glob 将扩展为正确的包含顺序。即,如果你有 make-tables.sqlload-tables.sql 那么你不能使用简单的 * 因为那会把load-make- 之前。

在每个文件前放置一个数字前缀可能会让您想起老式的 BASIC 行号,但它确实有效。

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

或类似的东西。

关于mysql - 合并多个 .SQL 文件的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986049/

相关文章:

sql - 将统计数据整理成时间 block

mysql - 通过shell脚本连接mysql数据库服务器

java - 在 Java 中将 PDF 编码为 Base64,在 PL/SQL 中解码 : doesn't work

sql - 如何对 PostgreSQL 中的列的一部分进行分组?

bash - Bash 中的 "> (tee -a ...)"命令

php - 脚本函数如何发送调用到php页面

php - MySQL按重复模式排序

python - 使用 pyodbc cursor.executemany() 时如何获得正确的行数

c - rm命令中pattern的含义

bash - 如何通过正则表达式重命名批量文件?