可以从SQL脚本引用另一个SQL文件
基本上我想从Postgres中的SQL文件执行一个SQL文件。
mysql的类似问题:是否可以在另一个sql脚本中从存储过程调用sql脚本?]
为什么?
因为我在一个项目中有2个数据文件,并且我希望有一行可以被注释/取消注释,所以可以加载第二个文件。
我想从A.SQL调用B.SQL
这是针对使用hibernate模式从初始SQL文件(A.SQL)创建数据库的Spring项目。
经过进一步的思考,看来我可能必须从java / string / hibernate处理这个问题。
spring.datasource.url=jdbc:postgresql://localhost:5432/dbnamespring.datasource.username=postgres
spring.datasource.password=root
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.data=classpath:db/migration/postgres/data.sql
spring.jpa.hibernate.ddl-auto=create
回答:
hibernate只是:
- 每行读取所有SQL文件
- 剥去任何评论(开始的行
--
,//
或/*
) - 删除任何
;
在端 - 将结果作为单个语句执行
(请参阅SchemaExport.importScript
和SingleLineSqlCommandExtractor
)
这里不支持包含。
你可以做什么:
- 定义自己
ImportSqlCommandExtractor
的文件,知道如何包含文件-您可以使用hibernate.hbm2ddl.import_files_sql_extractor=(fully qualified class name)
- 使用将您的可选文件定义为其他导入文件
hibernate.hbm2ddl.import_files=prefix.sql,optional.sql,postfix.sql
,您可以根据需要添加和删除文件引用,或者甚至可以从工件中排除该文件-丢失的文件只会创建一条调试消息。 - 创建一个
Integrator
可以hibernate.hbm2ddl.import_files
动态设置属性的,具体取决于某些环境属性
以上是 可以从SQL脚本引用另一个SQL文件 的全部内容, 来源链接: utcz.com/qa/433049.html