首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以让H2在内存数据库中自动创建模式吗?

我可以让H2在内存数据库中自动创建模式吗?
EN

Stack Overflow用户
提问于 2011-03-08 05:50:44
回答 5查看 133.5K关注 0票数 107

(我已经看到了H2 database In memory - Init schema via Spring/Hibernate问题;它在这里不适用。)

我想知道H2中是否有允许我在连接到模式时自动创建它的设置。如果有帮助,我只对内存中的情况感兴趣。

H2支持在URL末尾使用各种以分号分隔的修饰符,但我没有找到用于自动创建模式的修饰符。有这样的功能吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-08 13:05:27

是的,H2支持executing SQL statements when connecting。您可以运行一个脚本,或者只运行一两条语句:

代码语言:javascript
复制
String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST"
String url = "jdbc:h2:mem:test;" + 
             "INIT=CREATE SCHEMA IF NOT EXISTS TEST\\;" + 
                  "SET SCHEMA TEST";
String url = "jdbc:h2:mem;" + 
             "INIT=RUNSCRIPT FROM '~/create.sql'\\;" + 
                  "RUNSCRIPT FROM '~/populate.sql'";

请注意,双反斜杠(\\)只在Java中是必需的。INIT;前的反斜杠是必需的。

票数 194
EN

Stack Overflow用户

发布于 2017-12-29 17:28:11

如果您将spring与application.yml结合使用,则以下内容将适用于您:

代码语言:javascript
复制
spring:
  datasource:
    url: jdbc:h2:mem:mydb;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL;INIT=CREATE SCHEMA IF NOT EXISTS calendar
票数 25
EN

Stack Overflow用户

发布于 2018-04-06 22:33:39

Thomas所写的内容是正确的,除此之外,如果您想初始化多个模式,可以使用以下内容。注意,两个create语句之间有一个\\;分隔。

代码语言:javascript
复制
    EmbeddedDatabase db = new EmbeddedDatabaseBuilder()
                    .setType(EmbeddedDatabaseType.H2)
                    .setName("testDb;DB_CLOSE_ON_EXIT=FALSE;MODE=Oracle;INIT=create " +
                            "schema if not exists " +
                            "schema_a\\;create schema if not exists schema_b;" +
                            "DB_CLOSE_DELAY=-1;")
                    .addScript("sql/provPlan/createTable.sql")
                    .addScript("sql/provPlan/insertData.sql")
                    .addScript("sql/provPlan/insertSpecRel.sql")
                    .build();

参考:http://www.h2database.com/html/features.html#execute_sql_on_connection

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5225700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档