[Android + SQLite] Foreign Key - Como criar a integridade relacional entre tabelas?

Pessoal, estou com muitas dúvidas sobre o SLite para Android (não é exatamente com a linguagem SQL).
Pelo que entendi, o SQLite não “aceita” chaves estrangeiras entre tabelas. Temos de fazer tudo isso “no braço”.

– Criando as tabelas categoria e produto;

CREATE TABLE categoria ( id_categoria INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, nome TEXT NOT NULL );

CREATE TABLE produto ( id_produto INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, nome TEXT NOT NULL, quantidade TEXT NOT NULL, pontos INTEGER NOT NULL, id_categoria INTEGER NOT NULL, FOREIGN KEY(id_categoria) REFERENCES categoria(id_categoria) );

– Preenchendo com um registro apenas (para efeitos de teste);

INSERT INTO categoria VALUES (null, 'Frutas'); INSERT INTO produto VALUES (null, 'Abacate', '1 colher de sopa', 10, 1);
– Resultado CATEGORIA;

[code]id_categoria nome


1 Frutas[/code]

– Resultado PRODUTO;

[code]id_produto nome quantidade pontos id_categoria


1 Abacate 1 colher de sopa 10 1[/code]

A tabela CATEGORIA foi criada primeiro. E quando executo a seguinte linha de comando:

Obtenho o erro abaixo:

Como corrijo isso? Tudo isso foi feito em linha de comando (prompt). Isso tem de ser corrigido por programação, apenas nas classes Java?
E essa é a minha pergunta: como criar a integridade relacional entre tabelas, nesse caso? Por linha de comando não funciona.

Obrigado a todos!

Boa tarde,

Amigo ao invês de utilizar o “SELECT” dessa forma,

Utilize dessa forma,

Você apenas esqueceu de citar a tabela ‘produto’, para confrontar no “FROM”.

Caso exista a coluna ‘nome’ nas duas tabelas, você deve colocar o caminho também.