【发布时间】:2011-05-26 10:25:27
【问题描述】:
我有一个文件,其中包含用于创建数据库的 SQL 命令。
我还有一组单独的文件,每个文件都包含用于创建函数的 SQL 命令。例如:
- funcs_algebra.sql
- funcs_trigonometry.sql
- funcs_geometry.sql
假设我的主要 SQLscript 如下所示:
CREATE DATABASE mydb;
CREATE TABLE foo(id INT, name VARCHAR(32));
CREATE TABLE foobar(id INT, age REAL);
-- Commands below to import the functions in the separate files
-- funcs_algebra.sql
-- funcs_trigonometry.sql
-- funcs_geometry.sql
我想知道如何将这些文件包含在我的“主 SQL”中,这样我就只有一个文件可以传递给 psql。
目标是能够使用 psql 创建数据库(完整的函数),只需将此文件中的命令传递给 psql。
有人知道怎么做吗?
[编辑]
我可能应该说明我认为显而易见的事情。我想将与函数相关的 SQL 保留在单独的文件中,这样我就只有一个源要修改。这是我对逻辑进行分区并保留 DRY 的一种方式。
函数定义用于创建其他模板数据库 - 所以我想将它们保存在单独的文件中,但从我的 SQL 脚本中引用这些文件。
我能想到的唯一其他方法是编写一个连续调用 psql 的 bash 脚本——首先创建数据库,然后添加函数——不是很优雅,也不是很干。还有另一种(更优雅)的方式吗?
【问题讨论】:
标签: postgresql