Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

AUTOINCREMENT Create Table

Erro no AUTOINCREMENT , se eu tirar ele funciona mas não incrementa!

Será que a versão do SQLite é diferente?

Alguma ajuda?

public void onCreate(SQLiteDatabase db) {

        String sql ="CREATE TABLE " + TABELA +
         " (id INTEGER PRYMARY KEY AUTOINCREMENT , "
            + " nome TEXT UNIQUE NOT NULL, "
            + " telefone TEXT, "
            + " endereco TEXT, "
            + " site TEXT, "
            + " nota REAL, "
            + "caminhoFoto TEXT "
            + ");";

        db.execSQL(sql);
    }
02-02 20:24:35.240: E/SQLiteLog(850): (1) near "AUTOINCREMENT": syntax error

02-02 20:24:35.300: E/AndroidRuntime(850): Process: br.com.caelum.cadastro, PID: 850
02-02 20:24:35.300: E/AndroidRuntime(850): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.caelum.cadastro/br.com.caelum.cadastro.ListaAlunosActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENT": syntax error (code 1): , while compiling: CREATE TABLE Alunos (id INTEGER PRYMARY KEY AUTOINCREMENT ,  nome TEXT UNIQUE NOT NULL,  telefone TEXT,  endereco TEXT,  site TEXT,  nota REAL, caminhoFoto TEXT );
3 respostas
solução!

Oi Douglas, tudo bem?

Pelo que entendi, não é necessário a palavra-chave AUTOINCREMENT. Você pode deixar apenas a coluna INTEGER PRIMARY KEY que é o suficiente para que o SQLite se encarregue de incrementar os ids de forma automática.

Tem um pequeno erro, pois é PRIMARY KEY no lugar de PRYMARY KEY. Tenta fazer o seguinte código:

public void onCreate(SQLiteDatabase db) {

        String sql ="CREATE TABLE " + TABELA +
          "(id INTEGER PRIMARY KEY, "
            + " nome TEXT UNIQUE NOT NULL, "
            + " telefone TEXT, "
            + " endereco TEXT, "
            + " site TEXT, "
            + " nota REAL, "
            + "caminhoFoto TEXT "
            + ");";

        db.execSQL(sql);
}

Testa e nos avisa se funcionou? Abraço.

Nem percebi o erro, obrigado.

Onde consigo encontrar o SQLite aqui no eclipse? para fazer consultas diretas, sem ser pelo aplicativo em desenvolvimento.

Oi Douglas, que bom que funcionou!

No caso do desenvolvimento Android, acredito que não tem como fazer isso no eclipse, pois o SQLite está no próprio Android. Se houver alguma alternativa, eu desconheço.

Mas é possível utilizar o banco independente do Android, e talvez você consiga instalar o SQLite num ambiente separado do desenvolvimento Android e testá-lo. No site deles tem um área de download: https://www.sqlite.org/index.html

Abraço e bons estudos!