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!