Meus amigos, gostaria de saber como fazer os relacionamentos entre tabelas no SQLite.
Alguém para ajudar?
Ninguém? Gostaria de saber como fazer relacionamentos no SQLite.
Eu tenho esse script:
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " ("
+ KEY_ID_CARRO + " integer primary key autoincrement, "
+ KEY_IDCLIENTE_CARRO + " integer, "
+ KEY_IDTIPO_CARRO + " integer, "
+ KEY_MODELO + " text, "
+ KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO
+ " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( "
+ KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " ("
+ KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
O que poderia fazer para esse script ficasse mais claro e visível? Notem que tenho 2 relacionamentos.
cara da uma olhada nesse script aqui que eu fiz.
[code] "CREATE TABLE IF NOT EXISTS CadUsuario(codigoUsuario INTEGER PRIMARY KEY autoincrement NOT NULL, codigo INTEGER NOT NULL, login TEXT NOT NULL, senha TEXT NOT NULL);",
"CREATE TABLE IF NOT EXISTS CabecalhoPedido( idCabecalhoPedido INTEGER PRIMARY KEY autoincrement NOT NULL, pedidoNumero INT NOT NULL, codigoUsuario INTEGER NOT NULL, "+
" pedidoClienteDocumento TEXT, pedidoClienteInscricaoEstadual TEXT, pedidoClienteRazaoSocial TEXT, " +
" pedidoClienteEndereco TEXT, pedidoClienteCidade TEXT, pedidoClienteEstado TEXT, pedidoClienteCep TEXT, " +
" pedidoDataEmissao TEXT, pedidoValorTotal TEXT, pedidoCodCondicaoPag TEXT, pedidoCondicaoPag TEXT, pedidoLiberado TEXT, statusPedido TEXT, "+
" FOREIGN KEY(codigoUsuario) REFERENCES CadUsuario(codigoUsuario));",
"CREATE TABLE IF NOT EXISTS AprovaPedido( pedidoNumero INT PRIMARY KEY NOT NULL, codigoUsuario INTEGER NOT NULL, aprovada TEXT NOT NULL, "+
" FOREIGN KEY(pedidoNumero) REFERENCES CabecalhoPedido(pedidoNumero));"[/code]
Como você definiu essa string?
private …
Cara você já estudou SQL ? É sql normal, firebird, mysql e etc. Funciona do mesmo jeito.
Eu sei, to querendo saber como foi declarada:
Exemplo:
private static String dbName = "devmedia.db";
private static String sql
Cara joia…
não sei se você sacou mas eu utilizo um Array de String.
Declarei assim.
[code]
private static final String[] SCRIPT_DATABASE_CREATE = new String[] {
// aqui coloquei o scritpt
"CREATE TABLE IF NOT EXISTS CadUsuario(codigoUsuario INTEGER PRIMARY KEY autoincrement NOT NULL, codigo INTEGER NOT NULL, login TEXT NOT NULL, senha TEXT NOT NULL);",
"CREATE TABLE IF NOT EXISTS CabecalhoPedido( idCabecalhoPedido INTEGER PRIMARY KEY autoincrement NOT NULL, pedidoNumero INT NOT NULL, codigoUsuario INTEGER NOT NULL, "+
" pedidoClienteDocumento TEXT, pedidoClienteInscricaoEstadual TEXT, pedidoClienteRazaoSocial TEXT, " +
" pedidoClienteEndereco TEXT, pedidoClienteCidade TEXT, pedidoClienteEstado TEXT, pedidoClienteCep TEXT, " +
" pedidoDataEmissao TEXT, pedidoValorTotal TEXT, pedidoCodCondicaoPag TEXT, pedidoCondicaoPag TEXT, pedidoLiberado TEXT, statusPedido TEXT, "+
" FOREIGN KEY(codigoUsuario) REFERENCES CadUsuario(codigoUsuario));",
"CREATE TABLE IF NOT EXISTS AprovaPedido( pedidoNumero INT PRIMARY KEY NOT NULL, codigoUsuario INTEGER NOT NULL, aprovada TEXT NOT NULL, "+
" FOREIGN KEY(pedidoNumero) REFERENCES CabecalhoPedido(pedidoNumero));"
}[/code]
Beleza, agora ficou claro, C;k
Deixa perguntar uma coisa. Existe alguma ferramenta free visual que suporta o SQLite para criar tabelas, relacionamentos e gerar o script?
sim existe sim… é free.
para windows :
SQLite Expert Personal
License: Freeware
Version: 3.4.70 (revision history)
Release date: June 7, 2013
Platform: Windows 2000/XP/2003/Vista/7
Size: 23 MB
MD5
Ele faz relacionamentos na forma visual? Como no Access, exemplo.
Cara dessa forma ele não faz, pelo menos essa versão free.
Você conhece alguma outra ferramenta que faça isso?
No script que vc postou, como vc executou o SCRIPT_DATABASE_CREATE? Tem como vc postar o código todo dessa classe? Essa classe só cria o banco e a tabela, correto?
C;k, poderia me ajudar?
Alguém?
Como que executa isso:
private static final String[] SCRIPT_DATABASE_CREATE = new String[] {
// aqui coloquei o scritpt
"CREATE TABLE IF NOT EXISTS CadUsuario(codigoUsuario INTEGER PRIMARY KEY autoincrement NOT NULL, codigo INTEGER NOT NULL, login TEXT NOT NULL, senha TEXT NOT NULL);",
"CREATE TABLE IF NOT EXISTS CabecalhoPedido( idCabecalhoPedido INTEGER PRIMARY KEY autoincrement NOT NULL, pedidoNumero INT NOT NULL, codigoUsuario INTEGER NOT NULL, "+
" pedidoClienteDocumento TEXT, pedidoClienteInscricaoEstadual TEXT, pedidoClienteRazaoSocial TEXT, " +
" pedidoClienteEndereco TEXT, pedidoClienteCidade TEXT, pedidoClienteEstado TEXT, pedidoClienteCep TEXT, " +
" pedidoDataEmissao TEXT, pedidoValorTotal TEXT, pedidoCodCondicaoPag TEXT, pedidoCondicaoPag TEXT, pedidoLiberado TEXT, statusPedido TEXT, "+
" FOREIGN KEY(codigoUsuario) REFERENCES CadUsuario(codigoUsuario));",
"CREATE TABLE IF NOT EXISTS AprovaPedido( pedidoNumero INT PRIMARY KEY NOT NULL, codigoUsuario INTEGER NOT NULL, aprovada TEXT NOT NULL, "+
" FOREIGN KEY(pedidoNumero) REFERENCES CabecalhoPedido(pedidoNumero));"
}