[firebase-br] [off-topic] bd firebird - Master-Detail - Não aceita inserir registros ???

W O sistemas2000profesional em gmail.com
Dom Maio 8 21:06:21 -03 2011


Hola Nilton

Tu clave primaria de la tabla VENDA es ID_VENDA. Las claves primarias deben
tener valores únicos, no pueden repetirse y la columna ID_VENDA tiene
valores repetidos, por eso graba el primero, los demás los rechaza.

Tienes dos soluciones posibles:
1. Que ID_VENDA tenga valores únicos, que nunca se repitan
2. Que tu clave primaria sea una clave compuesta por dos columnas: ID_VENDA
e ID_CLIENTE.

Saludos.

Walter.





2011/5/8 Nilton Oliveira <nillgolv em bol.com.br>

> pessoal, desvendam este mistério para mim, estou meio confuso, não entendi
> o porque deste erro.
>
>
>
> tabela master
>
> -------------
>
> create table cliente (
>
>    id_cliente       integer not null,
>
>    nome             varchar(50),
>
>    dtnascimento  date,
>
>    telefone         varchar(17)
>
> );
>
>
>
>
>
> primary keys
>
> ------------
>
> alter table cliente add constraint pk_cliente_1 primary key (id_cliente);
>
>
>
>
>
> tabela detail
>
> -------------
>
> create table venda (
>
>    id_venda     integer not null,
>
>    id_cliente   integer not null,
>
>    vendedor     varchar(50)
>
> );
>
>
>
>
>
> primary keys
>
> ------------
>
> alter table venda add constraint pk_venda primary key (id_venda);
>
>
>
>
>
> foreign keys
>
> ------------
>
> alter table venda add constraint fk_venda_1 foreign key (id_cliente)
> references cliente (id_cliente);
>
>
>
>
>
> na tabela master, tenho os registros codigo=1, codigo=2, codigo=3,
> codigo=4, codigo=5
>
> na tabela detail, quando vou adicionar os registros abaixo, acontece o erro
>
>
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (1, 1,
> 'silva'); // gravou
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (2, 1,
> 'ana');   // gravou
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (1, 2,
> 'pedro');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (2, 2,
> 'carlos');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (3, 2,
> 'maria'); // gravou
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (1, 3,
> 'lucia');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (2, 3,
> 'santos');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (3, 3,
> 'flavia');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (1, 4,
> 'keila');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (2, 4,
> 'cristina');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (3, 4,
> 'paula');
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (4, 4,
> 'sergio'); // gravou
>
> insert into "venda" ("id_venda", "id_cliente", "vendedor") values (1, 5,
> 'claudio');
>
>
>
> commit work;
>
>
>
> veja que gravou somente os registros com id_venda: 1, 2, 3, 4.
>
>
>
> não entendo este erro, no id_venda nao teria que ser a sequencia de
> registros de cada cliente
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista