SQLSyntaxErrorException: the "TEST" column is either not in any table in the FROM list, or appears in the join specification

I am trying to insert some values ​​into my table which is created to fulfill this query

public static final String tableName = "ACCOUNT_TABLE"; 

statement.executeUpdate("CREATE TABLE "+ tableName +" (" +
   " ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY ("+
   " START WITH 1, INCREMENT BY 1), username VARCHAR(15), password VARCHAR(100)" + ")");

after that, when the table was successfully created, I call the register method to insert the user into the table

public boolean registerAccount(final User user){
    if (statement != null){
        final String userName = user.getUserName();
        final String password = user.getPassword();
        try {
            return statement.execute("INSERT INTO "+tableName +" VALUES (" + userName +"," + password +")");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    return false;
}

in this example userName == "TEST" and password == "123"

return statement.execute("INSERT INTO "+tableName+" VALUES (" + userName +"," + password +")"); excludes exception here

java.sql.SQLSyntaxErrorException: Column 'TEST' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement then 'TEST' is not a column in the target table.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
+4
source share
1 answer
  • Lines should be between two 'username', so your query should look like this:statement.execute("INSERT INTO "+tableName +" VALUES ('" + userName +"','" + password +"')");
  • , - SQL-, PreparedStatement.

  • java.sql.SQLSyntaxErrorException , , , :

    INSERT INTO tableName(username_col, password_col) VALUES ('userName', 'password')
    //-----------------------^-------------^----------------------^-----------^
+3

Source: https://habr.com/ru/post/1675895/


All Articles