1
lcorange 2020-12-15 19:18:06 +08:00
spring 可以添加一个叫 flyway 的组件,你可以写版本 1,2,3,4 等版本的 sql,它会判断当前服务器执行到了哪一个,然后增量更新
|
2
yestodayHadRain OP @lcorange spring 初始化表结构的 sql 文件不支持写存储过程吗?
|
3
lcorange 2020-12-15 21:58:45 +08:00 1
存储过程我没有试过,不知道怎么支持。
flyway 我用了很久,这个组件不需要写存储过程,完全可以满足你的需求。 |
4
cheng6563 2020-12-16 08:15:06 +08:00 via Android
jdbc 要加个参数才能执行多行 SQL
|
5
yestodayHadRain OP @cheng6563 什么参数?是配置文件里的参数吗?
|
6
cheng6563 2020-12-16 09:44:49 +08:00 1
@yestodayHadRain 加个 allowMultiQueries=true
例 jdbc:mysql://127.0.0.1:3306/junit?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true |
7
yestodayHadRain OP @cheng6563 那 spring 初始化表结构的 sql 文件中 可以放存储过程吗?
|
8
yestodayHadRain OP @cheng6563 加了这个参数,启动项目还是失败.会不会是不支持执行存储过程?
|
9
cheng6563 2020-12-16 11:02:13 +08:00
@yestodayHadRain 应该可以的,你把报错贴出来看看?
|
10
yestodayHadRain OP @cheng6563 Failed to execute SQL script statement #2 of class path resource [sql/alter.sql]: DELIMITER$$ CREATE PROCEDURE ADD_COLUMN() BEGIN IF NOT EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'test_case' AND table_schema = 'case_manager' AND column_name = 'biz_id') THEN alter table test_case add column biz_id varchar(500) default '-1' not null comment '关联的文件夹 id'; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER$$ CREATE PROCEDURE ADD_COLUMN() BEGIN IF NOT EXISTS( SELECT * FROM INF' at line 1
|
11
yestodayHadRain OP @cheng6563 报的语法错误,但是这存储过程我在 Navicat 里执行是没问题的
|
12
yestodayHadRain OP @cheng6563 大佬方便加个联系方式吗?好像有点眉目了
|