Hi, LIMIT is a keyword and can't be used as an object name, sorry. PostgreSQL doesn't support LIMIT as well. The list of keywords for H2 is:
CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DISTINCT, EXCEPT, EXISTS, FALSE, FOR, FROM, FULL, GROUP, HAVING, INNER, INTERSECT, IS, JOIN, LIKE, LIMIT, MINUS, NATURAL, NOT, NULL, ON, ORDER, PRIMARY, ROWNUM, SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP, TODAY, TRUE, UNION, WHERE The list of keywords for other databases may be a bit different (most other database have more keywords). This is documented http://www.h2database.com/html/advanced.html#compatibility , unfortuantely the LIMIT is missing (I will add it in the next release). I suggest to use another word. The second problem is that == is not a SQL comparator. Use = as in: CREATE TABLE Limited ("Limit" INTEGER); select * from Limited where "Limit" = 1 Regards, Thomas On Tue, Feb 17, 2009 at 8:03 PM, Clay <[email protected]> wrote: > > It looks like I can add quotes like this: > CREATE TABLE Limited ("Limit" INTEGER); > > But I can't make selects work with or without quotes: > select * from Limited where Limit == 1 > select * from Limited where "Limit" == 1 > > org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement SELECT * > FROM LIMITED WHERE LIMIT[*] == 1 ; expected NOT, EXISTS, SELECT, FROM; > SQL statement: > > > > > On Feb 17, 12:27 pm, Clay <[email protected]> wrote: >> CREATE TABLE Limited (Limit INTEGER); >> >> When I try to create a table like this I get the following exception. >> Naming the column "Limit" is not something that can be changed. This >> seems like a silly reason to not be able to use H2, can someone >> explain how to get around this problem. Thanks. >> >> org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement >> CREATE TABLE LIMITED (LIMIT[*] INTEGER); >> ; expected identifier; SQL statement: >> >> CREATE TABLE Limited (Limit INTEGER); >> [42001-79] >> at org.h2.message.Message.getSQLException(Message.java:103) >> at org.h2.message.Message.getSQLException(Message.java:114) >> at org.h2.message.Message.getSyntaxError(Message.java:139) >> at org.h2.command.Parser.readColumnIdentifier(Parser.java:2480) >> at org.h2.command.Parser.parseCreateTable(Parser.java:4567) >> at org.h2.command.Parser.parseCreate(Parser.java:3410) >> at org.h2.command.Parser.parsePrepared(Parser.java:321) >> at org.h2.command.Parser.parse(Parser.java:288) >> at org.h2.command.Parser.parse(Parser.java:260) >> at org.h2.command.Parser.prepareCommand(Parser.java:232) >> at org.h2.engine.Session.prepareLocal(Session.java:285) >> at org.h2.engine.Session.prepareCommand(Session.java:246) >> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java: >> 1063) >> at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:151) >> at groovy.sql.Sql.execute(Sql.java:804) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke >> (NativeMethodAccessorImpl.java:39) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke >> (DelegatingMethodAccessorImpl.java:25) >> at org.codehaus.groovy.reflection.CachedMethod.invoke >> (CachedMethod.java:86) >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230) >> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912) >> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756) >> at org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod >> (InvokerHelper.java:766) >> at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod >> (InvokerHelper.java:754) >> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN >> (ScriptBytecodeAdapter.java:170) > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
