Maxime, My fault , I haven't see that you have a PK, then wrong conclusion, wrong answer and wrong reaction.
Accept my apologies and don't blame the group for my answer which is mine and mine alone. Regards, Dario. Maxime Daigneault escribió: > Hi Dario, > > Please take your time to read my first post. It is clearly written > that I read the documentation before creating this topic. > I also looked at the beautiful syntax just to be sure that I was > understanding or MERGE was working. > > As the graph shows and if I read carefully this sentence taken > directly from the documentation: "If no key column is specified, the > primary key columns are used to find the row." > > I assume that the key is OPTIONAL and that it will rely on the primary > key to find what it must do. > So, based on what I understood, knowing that my table has a primary > key (first field), why do I need to specify the key. If I don't > specify the key, I get the error shown on my first post. > > Commentting Dario's post: > > I'm used to programming groups and forum. I have decent knowledge > about how to behave in there. Each time i use these, I really do my > best to go as straight-forward as possible and provide as much info as > anyone reading could need (stack trace, error message). I must say > that I had my worst welcome ever in a programming forum/group in this > one. Your message was cold and filled with sarcasm and I really hope > that it doesn't represent the H2 database community. Maybe you just > had a bad day. I really feel like my message was straight-forward and > easy to read. If I misunderstood something in the documentation, you > could simply tell me without being so harsh. > > > On Oct 29, 6:59 pm, "Dario V. Fassi" <[email protected]> wrote: > >> Hi, Maxime, >> Please take your time to read the merge's documentation >> (http://www.h2database.com/html/grammar.html#merge) there are a >> beautiful syntax graph too. >> Merge it's an update OR insert operation, so the only way to know what >> to do is to find by Primary KEY of intended new row. >> >> Please be carefull, people that support this group, are working really >> hard for H2 and for us, and posts like this make them loose their time. >> >> Regards, >> Dario. >> >> Maxime Daigneault escribió: >> >> >>> As I can read in H2 documentation, MERGE statement should work the >>> same as INSERT statement. Only exception is usage of a key, but I >>> don't need one because it should rely on primary key. >>> >>> Assuming this, why this works: >>> >>> CALL CSVWRITE('test.csv', 'SELECT * FROM NODE'); >>> (of course, I need to change values in file before inserting it else I >>> will get an error because of the primary key) >>> INSERT INTO NODE (SELECT * FROM CSVREAD('test.csv')); >>> >>> And this doesn't work? >>> >>> CALL CSVWRITE('test.csv', 'SELECT * FROM NODE'); >>> MERGE INTO NODE (SELECT * FROM CSVREAD('test.csv')); >>> >>> Really, this should work. This would be just perfect for my needs. >>> >>> Stack trace: >>> >>> Syntax error in SQL statement MERGE INTO NODE (SELECT[*] * FROM CSVREAD >>> ('test.csv')); expected identifier; SQL statement: >>> MERGE INTO NODE (SELECT * FROM CSVREAD('test.csv')) [42001-120] >>> 42001/42001 (Help) >>> org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement MERGE INTO >>> NODE (SELECT[*] * FROM CSVREAD('test.csv')); expected identifier; SQL >>> statement: >>> MERGE INTO NODE (SELECT * FROM CSVREAD('test.csv')) [42001-120] >>> at org.h2.message.Message.getSQLException(Message.java:106) >>> at org.h2.message.Message.getSQLException(Message.java:117) >>> at org.h2.message.Message.getSyntaxError(Message.java:142) >>> at org.h2.command.Parser.readColumnIdentifier(Parser.java:2518) >>> at org.h2.command.Parser.parseColumnList(Parser.java:747) >>> at org.h2.command.Parser.parseMerge(Parser.java:854) >>> at org.h2.command.Parser.parsePrepared(Parser.java:374) >>> at org.h2.command.Parser.parse(Parser.java:291) >>> at org.h2.command.Parser.parse(Parser.java:263) >>> at org.h2.command.Parser.prepareCommand(Parser.java:235) >>> at org.h2.engine.Session.prepareLocal(Session.java:415) >>> at org.h2.engine.Session.prepareCommand(Session.java:376) >>> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java: >>> 1049) >>> at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:149) >>> at org.h2.server.web.WebThread.getResult(WebThread.java:1691) >>> at org.h2.server.web.WebThread.query(WebThread.java:1274) >>> at org.h2.server.web.WebThread.process(WebThread.java:430) >>> at org.h2.server.web.WebThread.processRequest(WebThread.java:183) >>> at org.h2.server.web.WebThread.process(WebThread.java:236) >>> at org.h2.server.web.WebThread.run(WebThread.java:193) >>> > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/h2-database?hl=en -~----------~----~----~----~------~----~------~--~---
