Socorro urgente com o Java DB (Derby)!

1 resposta
M

Olá amigos,

Sempre usei o MySQL como meu banco de dados preferido, mas estou fazendo um sistema pequeno para um amigo e preferi usar como banco de dados o Java DB, por poder ser embarcado na própria aplicação, que será desktop. Não quero que meu cliente tenha que ficar instalando o MySQL no computador dele, iniciando o servidor, etc, seria muito tedioso. :cry:

Bom, o pau é o seguinte: tenho 2 tabelas, uma CLIENTES e outra PROJETOS. CLIENTES tem como chave primária um campo “nome”, do tipo Varchar. Um Cliente solicita um ou mais Projetos, e um Projeto só pode ser solicitado por um Cliente. Temos uma relação então Clientes -> Projetos de 1:M, OK? a chave primária “nome”, da tabela CLIENTES vai como chave estrangeira para a tabela PROJETOS. Até aí tudo bem… O problema é na hora de criar a restrição de integridade. Fica assim:

create table APP.PROJETOS (

id_projeto integer not null primary key generated always as identity,

nome varchar(100) not null,

data_visita date,

data_entrega date,

valor double not null,

descricao varchar(250),

nome_cliente varchar(150) constraint nome_cliente_fk references APP.Clientes, <---------

observacoes varchar(350)

);

(Observem a seta). Mas desse jeito, ao atualizar um nome de cliente ocorre uma restrição de integridade e aborta. Se eu colocar ON UPDATE CASCADE, o Java DB NÃO aceita (vi no seu manual e ele só aceita RESTRICT e NO ACTION). Tanto faz. Não se pode mais atualizar um nome de cliente depois que ele está como chave estrangeira em algum projeto. No MySQL bastava usar o ON UPDATE CASCADE, mas como disse, não existe essa opção no Java DB. Não sei o que fazer!!!

Desculpem o longo post. Se alguém souber como resolver, me ajude.

Grato.

1 Resposta

ricardosoares

hsqldb aceita on cascade

Criado 14 de julho de 2010
Ultima resposta 14 de jul. de 2010
Respostas 1
Participantes 2