java.sql.SQLException: sql injection violation, syntax error: TODO UNIQUE unique

发布于 2022-01-04 01:53:09 字数 4356 浏览 829 评论 6

@wenshao 你好,想跟你请教个问题:

我是在用activiti工作流的时候  初始化生成流程表产生了下面的问题

工作流引擎代码:

ProcessEngineConfiguration config = ProcessEngineConfiguration
    .createStandaloneProcessEngineConfiguration();
   config.setDataSource(dataSource).setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE).buildProcessEngine();

报错信息:

Caused by: java.sql.SQLException: sql injection violation, syntax error: TODO UNIQUE unique : alter table ACT_RE_PROCDEF 
add constraint ACT_UNIQ_PROCDEF 
unique (KEY_,VERSION_, TENANT_ID_)
at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:724)
at com.alibaba.druid.wall.WallFilter.statement_execute(WallFilter.java:396)
at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2487)
at com.alibaba.druid.filter.FilterAdapter.statement_execute(FilterAdapter.java:2451)
at com.alibaba.druid.filter.FilterEventAdapter.statement_execute(FilterEventAdapter.java:188)
at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2487)
at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.execute(StatementProxyImpl.java:137)
at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:421)
at org.activiti.engine.impl.db.DbSqlSession.executeSchemaResource(DbSqlSession.java:1368)
... 32 more
Caused by: com.alibaba.druid.sql.parser.ParserException: TODO UNIQUE unique
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlterTable(MySqlStatementParser.java:2375)
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlter(MySqlStatementParser.java:2297)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:217)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:145)
at com.alibaba.druid.wall.WallProvider.checkInternal(WallProvider.java:620)
at com.alibaba.druid.wall.WallProvider.check(WallProvider.java:574)
at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:711)
... 40 more

druid版本:1.0.15,1.0.21(测试了这两版本) mysql驱动版本:5.1.32

语句:

alter table ACT_RE_PROCDEF 
add constraint ACT_UNIQ_PROCDEF 
unique (KEY_,VERSION_, TENANT_ID_)

单独拿出来跑是没有问题的

另:我换了HikariCP 没有出现问题,是不是我对Druid的配置出现了问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

瑾夏年华 2022-01-07 22:26:54

您解决了没  我现在遇到和您一样的问题    不知道能否从您这得到有用信息哪?

浅沫记忆 2022-01-07 22:25:06

再执行一遍

复古式 2022-01-07 22:20:14

这个SQL文是activiti工作流自动生成的,我没有办法改掉它

奈何桥上唱咆哮 2022-01-07 21:28:20

回复
看了一下源码,constraint 后面只支持primary 和 foreign,不支持unique,其实unique和primary差不多,换成primary试试

做个少女永远怀春 2022-01-07 19:57:11

回复
恩,不过那个SQL文不是我自己生成的,是Activiti工作流自动生成的,我改不了里面的代码哇 。。。。

皇甫轩 2022-01-07 18:59:12

sql语句换成这种试试

alter table table_name add unique key `new_uk_name` (`col1`,`col2`);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文