ErinG
ErinG

Reputation: 15

Syntax Error (code1) when trying to delete the last row from an SQLite Database

I am trying to delete the last row from a SQLite Database table but I keep getting an error. Can someone find my syntax error?

Find the MAXID

private String MAXID = COLUMN_ID + "=" + "SELECT MAX("+COLUMN_ID+") FROM "+TABLE_NAME+")";

DELETE Staement

public void deleteLastRow(){
    try{
        ourDatabase.delete(TABLE_NAME, MAXID, null);

    }
    catch(Exception e){
        e.printStackTrace();
        Log.e("Deleteing last row", e.toString());
    }
}

Error logs

 09-13 12:53:14.570: E/Deleteing last row(2045): android.database.sqlite.SQLiteException: near "SELECT": syntax error (code 1): , while compiling: DELETE FROM gradest WHERE _id=SELECT MAX(_id) FROM gradest)

Upvotes: 1

Views: 313

Answers (1)

CL.
CL.

Reputation: 180060

Subqueries must always be enclosed in parentheses:

DELETE FROM gradest WHERE _id = (SELECT MAX(_id) FROM gradest)

Upvotes: 1

Related Questions