
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 存储过程我没有试过,不知道怎么支持。 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 @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 大佬方便加个联系方式吗?好像有点眉目了 |