H2中的MySQL分隔符

时间:2018-10-29 14:19:21

标签: mysql h2

我正在尝试在应用程序启动时初始化内存数据库H2中的数据。

我有一个很大的sql文件。一切都很好,直到到达定界符语句:

delimiter $
CREATE TRIGGER ins_sum BEFORE INSERT ON account
   FOR EACH ROW BEGIN INSERT INTO mytable(name) values (NEW.name);
END$
delimiter $
//ANOTHER TRIGGER

这是我看到的错误:

  

由以下原因引起:org.h2.jdbc.JdbcSQLException:SQL语句“ delimiter [*] $ ....中的语法错误”预期为“ DELETE,DROP,DECLARE,DEALLOCATE,{”; SQL语句:...

我已经通过DataSource编程地通过属性文件设置了MODE = MYSQL,在data.sql文件本身SET MODE MYSQL;中设置了模式

yml文件:

spring.datasource.url
=jdbc:h2:mem:mydb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL
spring.datasource.username: myusername
spring.datasource.password: mypassword
driver-class-name: org.h2.Driver

以编程方式:

@Bean
public DataSource dataSource() {
        EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
        EmbeddedDatabase db = builder
            .setType(EmbeddedDatabaseType.H2)
            .setName("mydb;DATABASE_TO_UPPER=false;MODE=MYSQL")
            .addScript("data.sql")
            .build();
        return db;
}

我也尝试过完全删除定界符,但随后在下一行失败。

0 个答案:

没有答案