2012-09-10 33 views
2

我知道MySQL支持,例如该查询(ON DUPLICATE KEY UPDATE):德比JavaDB之外的查询对重复密钥更新

INSERT INTO UserFailure (Realm, Username, DateOfFailure, CountOfFailure) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE CountOfFailure=?; 

当我在嵌入式Derby DB运行此它给了我:

PreparedStatementCallback; bad SQL grammar [INSERT INTO UserFailure (Realm, Username, DateOfFailure, CountOfFailure) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE CountOfFailure=?;]; nested exception is java.sql.SQLSyntaxErrorException: Syntax error: Encountered "ON" at line 1, column 91. 

我假设Derby不支持此功能。

是否有一个查询我可以用来更新重复键上的数据库记录从DerbyMySQL

回答

2

您可以自己捕获重复键异常,并发出更新。

+0

是的我知道我可以做到这一点,但没有任何将在Derby和MySql中执行相同的查询吗? –

+0

MySQL的SQL语言扩展通常不会被其他数据库实现。看到这个相关的问题一些更多的想法:http://stackoverflow.com/questions/1197733/does-sql-server-offer-anything-like-mysqls-on-duplicate-key-update –