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

kushu001 发布于 2016/07/05 08:36
阅读 6K+
收藏 0

@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的配置出现了问题




加载中
0
显峰哥

sql语句换成这种试试

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

kushu001
kushu001
回复 @显峰哥 : 恩,不过那个SQL文不是我自己生成的,是Activiti工作流自动生成的,我改不了里面的代码哇 。。。。
显峰哥
回复 @kushu001 : 看了一下源码,constraint 后面只支持primary 和 foreign,不支持unique,其实unique和primary差不多,换成primary试试
kushu001
kushu001
这个SQL文是activiti工作流自动生成的,我没有办法改掉它
0
matata
matata

再执行一遍

0
艰难前行侠
艰难前行侠

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

返回顶部
顶部