Home  >  Article  >  Database  >  MySQL 触发器错误_MySQL

MySQL 触发器错误_MySQL

WBOY
WBOYOriginal
2016-06-01 13:44:461326browse

bitsCN.com

使用Spring jdbctemplate时出错:

 

 

view sourceprint?01 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [insert into t_data(id,content,status,type,r_id) values(?,?,?,?,?)]; SQL state [HY000]; error code [1442]; Can't update table 't_data' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.; nested exception is java.sql.SQLException: Can't update table 't_data' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 

 

02 org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124) 

 

03   

 

04 java.sql.SQLException: Can't update table 't_data' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 

 

05 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) 

 

06 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 

 

07 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 

 

08 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 

 

09 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 

 

10 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 

 

11 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) 

 

12 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) 

 

13 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)

 

 

原因是在触发器中引用了触发该触发器的宿主表:

 

 

when you insert a record mysql is doing some lock stuff. you can't insert/update/delete rows of the same table where you insert.. because then the trigger would called again and again.. ending up in a recursion

参考:http://forums.mysql.com/read.php?99,122354,122505#msg-122505

 

 http://topic.csdn.net/u/20101213/15/095c08fe-bd91-476c-9d16-5d7c648fa8a2.html?seed=1512932427&r=76107745

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn