| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Sáb Fev 05, 2011 10:18 pm Assunto: Chave primária permitindo duplicidade[Resolvido] |
|
|
Pessoal ja dei uma estuda grande sobre banco de dados e o que aprendir é que chave primária em um campo é pra não deixar da duplicidade e fiz teste em um banco que tem e realmente não deixa inserir o numero que ja tem, mai o que mais me deixa intrigado é que eu tenho um banco aqui em que o programador fez muita programação baseado em uma chave que vc coloca o mesmo valor repetida vez exemplo no campo chave tem o valor 10 repetido varios vezes e gostaria de saber como ele fez
veja a estrutura da tabela dele
CREATE TABLE ENTIDADES_TELEFONES (
CODIGO_ENTIDADE CHAVE_GRANDE NOT NULL /* CHAVE_GRANDE = INTEGER NOT NULL CHECK (VALUE > 0) */,
ITEM CHAVE_PEQUENA NOT NULL /* CHAVE_PEQUENA = SMALLINT NOT NULL CHECK(VALUE >= 0) */,
CODIGO_TIPO_CONTATO CHAVE_PEQUENA NOT NULL /* CHAVE_PEQUENA = SMALLINT NOT NULL CHECK(VALUE >= 0) */,
DDI DESCRICAO_02 DEFAULT 55 /* DESCRICAO_02 = CHAR(2) */,
DDD DESCRICAO_02 /* DESCRICAO_02 = CHAR(2) */,
NUMERO_TELEFONE DESCRICAO_20 COLLATE PXW_INTL850 /* DESCRICAO_20 = VARCHAR(20) */,
CONTATO DESCRICAO_30 /* DESCRICAO_30 = VARCHAR(30) */
);
/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/
ALTER TABLE ENTIDADES_TELEFONES ADD CONSTRAINT PK_ENTIDADES_TELEFONES PRIMARY KEY (CODIGO_ENTIDADE, ITEM);
/******************************************************************************/
/*** Foreign Keys ***/
/******************************************************************************/
ALTER TABLE ENTIDADES_TELEFONES ADD CONSTRAINT FK1_ENTIDADES_TELEFONES FOREIGN KEY (CODIGO_ENTIDADE) REFERENCES ENTIDADES (CODIGO_ENTIDADE) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE ENTIDADES_TELEFONES ADD CONSTRAINT FK_ENTIDADES_TELEFONES FOREIGN KEY (CODIGO_TIPO_CONTATO) REFERENCES TIPO_CONTATO (CODIGO_TIPO_CONTATO) ON UPDATE CASCADE;
Editado pela última vez por nildglan em Ter Fev 08, 2011 12:00 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
temuchin Profissional


Registrado: Segunda-Feira, 12 de Dezembro de 2005 Mensagens: 584 Localização: Marte
|
Enviada: Seg Fev 07, 2011 10:27 am Assunto: |
|
|
Olá
Pelo que vi, o cara usou uma Chave Primária Composta na tabela
| Código: |
ALTER TABLE ENTIDADES_TELEFONES ADD CONSTRAINT PK_ENTIDADES_TELEFONES PRIMARY KEY (CODIGO_ENTIDADE, ITEM);
|
Nesse caso, a duplicidade é verificada de acordo com o conteúdo dos campos codigo_entidade e item em conjunto, não importando seus valores individuais.
Dê uma olhada no link abaixo... o cara explica as diferenças entre Chaves Primárias Simples e Chaves primárias Compostas
http://www.luis.blog.br/chave-primaria-simples-e-chave-primaria-composta.aspx
Espero que te ajude
Abraço _________________ A santidade dos pobres é invenção dos ricos
if ( topico.resolvido = true ) then begin
titulo.caption := topico.titulo + ' [RESOLVIDO] ';
end; |
|
| Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Seg Fev 07, 2011 6:32 pm Assunto: |
|
|
temuchin e como é que faço para localizar determinado registro pelo código se existe varios iguais exemplo?
eu quero apagar determinado registro como localizar só ele?
eu uso dbexpress e Firebird |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
rafmattos Colaborador

Registrado: Quinta-Feira, 11 de Fevereiro de 2010 Mensagens: 3416 Localização: Campo Grande/MS
|
Enviada: Ter Fev 08, 2011 8:24 am Assunto: |
|
|
| nildglan escreveu: | temuchin e como é que faço para localizar determinado registro pelo código se existe varios iguais exemplo?
eu quero apagar determinado registro como localizar só ele?
eu uso dbexpress e Firebird |
como disse o adriano vc vai ter q colocar a chave ou outro campo q vc possa indentificalo como unico
| Código: |
where CODIGO_ENTIDADE = valor
and ITEM = valor
|
|
|
| Voltar ao Topo |
|
 |
BrunoMoreyra Colaborador

Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Ter Fev 08, 2011 3:59 pm Assunto: |
|
|
Boa tarde,
você terá que utilizar a chave primária, que é composta. Terá que utilizar todos os campos pertencentes na chave primária.
| nildglan escreveu: | temuchin e como é que faço para localizar determinado registro pelo código se existe varios iguais exemplo?
eu quero apagar determinado registro como localizar só ele?
eu uso dbexpress e Firebird |
_________________ Atencisamente,
Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta |
|
| Voltar ao Topo |
|
 |
|