2012-09-10 6 views
2

Je sais que MySQL soutient cette requête (ON DUPLICATE KEY UPDATE), par exemple:Derby JavaDB requêtes Duplicate KEY UPDATE

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

Quand je courais cela sur embarqué Derby DB il me donne:

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. 

I Supposons que Derby ne prend pas en charge cette fonctionnalité.

Existe-t-il une requête que je peux utiliser pour mettre à jour l'enregistrement de base de données sur une clé dupliquée à partir de Derby et de MySQL?

Répondre

2

Vous pouvez vous-même intercepter l'exception de clé dupliquée et émettre la mise à jour.

+0

Oui, je sais que je peux le faire, mais n'y a-t-il aucune requête qui fera la même chose dans Derby et MySql? –

+0

Les extensions de langage SQL de MySQL ne sont généralement pas implémentées par d'autres bases de données. Voir cette question connexe pour plus d'idées: http://stackoverflow.com/questions/1197733/does-sql-server-offer-anything-like-mysqls-on-duplicate-key-update –

Questions connexes