(我已经看过H2 database In memory - Init schema via Spring/Hibernate个问题,这里不适用.)

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

H2在URL末尾支持各种分号分隔的修饰符,但我没有找到一个用于自动创建模式的修饰符.有这样的特点吗?

推荐答案

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

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;之前的反斜杠是必需的.

Sql相关问答推荐

如何计算帐户在SQL中随着时间的推移购买的SKU数量?

SQL计数所有值在联接范围内的行

如何在SQL Server中列出从当前月份开始的过go 10年中的月份

在多个柱上连接时,如何确定连接条件?

SQL:计算与另一列中给定值互斥的匹配项

如何计算一个用户S的日常连胜?

按分类标准检索记录

数组列的postgres更新查询

其中使用表名作为;行值;记录?

从选定记录中提取摘要作为值的划分

试图找到两个身份列表的交集(列表的长度不同),但获取列 id 不明确?

如何解释 SQL Server 中的 Foxpro 语法?

如何在第二个 INSERT 中使用第一个 INSERT 自动生成的 ID

计算 BigQuery 中列的中值差 - 分析函数不能作为聚合函数的参数

复制SQL Server临时表

PostgreSQL中如何提取以特定字符开头的字符串中的所有单词?

从 varchar 列中删除特殊字符后的前面的零和字符时遇到问题

在多个表上递归查找

雅典娜弄错了操作顺序

在 Athena / Presto 中提取 JSON 对象以获取动态密钥