Java JDBC它不使用特定的列名运行,我不明白为什么?

Java JDBC它不使用特定的列名运行,我不明白为什么?,java,jdbc,Java,Jdbc,如果我键入以下内容: try { ResultSet rs = dbmd.getTables(null, "APP", "USERS", null); if(!rs.next()) { state.execute("create table users(first varchar(20), last varchar(20))"); } } catch (SQLException ex) { System.out.println("Problem R

如果我键入以下内容:

try {
    ResultSet rs = dbmd.getTables(null, "APP", "USERS", null);
    if(!rs.next()) {
        state.execute("create table users(first varchar(20), last varchar(20))");
    }
} catch (SQLException ex) {
    System.out.println("Problem RS");
    System.out.println(""+ex);
} 
它给出了以下错误:

ThirdConnection
conn OK
state OK
dbmd OK
Problem RS
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "first" at line 1, column 20.
如果我把代码改成

state.execute("create table users(name varchar(20), address varchar(20))");
->


即使问题很好,也需要更多的细节,所以我想问:为什么?

第一个和最后一个是SQL关键字。选择其他名称(不要选择表、选择或顺序:)。右键。。。谢谢你的快速回答。。。我想我要跳出windows,因为我不知道它为什么不工作…@Lino:
`first`
是无效的SQL。在SQL中,关键字需要用双引号引起来,例如:
“first”
,但最好找到一个不是关键字的名称。如果指定尝试使用的数据库,则使用起来会简单得多。保留关键字因数据库而异。
ThirdConnection
conn OK
state OK
dbmd OK
rs OK