Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maxcarvalho

Chaves PRIMARY e INDEX não podem ser usadas juntas p/ a coluna 'th

Recommended Posts

Prezados, Sou um inciante em MySQL e em PHP. Utilizo o phpMyAdmin como front-end para gerenciar um banco de dados de processsos em uma universidade. As versões dos softwares que utilizado são as seguintes : Servidor WEB : Apache 1.3.33 Linguagem : PHP 5.0.3 SGBD : MySQL 4.1.14 Front-end(do banco) : phpMyAdmin 2.6.3-pl1 Quando o executo o script que cria as tabelas(um arquivo .SQL), estas são criadas, mas aparece, na telado phpMyAdmin, o seguinte erro: Chaves PRIMARY e INDEX não podem ser usadas juntas para a coluna "tha_num_processo". O banco que criei possui tabelas, chaves primárias e estrangeiras, e índices para otimização das consultas. Será que alguém saberia me dizer o motivo deste erro estár acontecendo ? No mais, é só. Agradeço qualquer ajuda que me for enviada. []'s a todos, Max W. V. Carvalho maxcarvalho@yahoo.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra a estrutura de tua tabela, mas na minha opinião, se você já vai criar a chave primária, pq esta precisa ser index ?Não tem muito sentido isso e talvez seja por isso que esteja dando este erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra a estrutura de tua tabela, mas na minha opinião, se você já vai criar a chave primária, pq esta precisa ser index ?Não tem muito sentido isso e talvez seja por isso que esteja dando este erro.

Prezado 'walace' Eu trabalho durante a semana em uma cidade, onde moro, e passo os finais de semana em outra. Assim, te mando a estrutura da tabela no início desta próxima semana. Obrigado pela atenção e um bom final de semana. []'s Max W. V. Carvalho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostra a estrutura de tua tabela, mas na minha opinião, se você já vai criar a chave primária, pq esta precisa ser index ?

 

Não tem muito sentido isso e talvez seja por isso que esteja dando este erro.

 

Prezado Wallace,

 

Segue, abaixo a estrutura da tabela. Caso você necessite de mais informações, é só dizer quais

que as enviarei tão logo seja possível.

A estutura da tabela é a seguinte :

 

Nome da tabela : tab_h_anexo

Objetivo : Armazenar o histórico de anexos que são juntados a um processo administrativo em uma

universidade.

 

Estrutura da tabela :

 

CREATE TABLE tab_h_anexo (

 

tha_num_processo int(6) NOT NULL default '0',

tha_ano_processo varchar(4) NOT NULL default '',

tha_num_anexo int(4) NOT NULL default '0',

tha_tipo_anexo char(3) NOT NULL default '',

tha_detalhe_anexo blob default NULL,

tha_num_documento char(3) NOT NULL default '',

tha_data_documento date NOT NULL default '0000-00-00',

tha_obs blob,

 

PRIMARY KEY (tha_num_processo,tha_ano_processo,tha_num_anexo)

 

) TYPE=InnoDB;

 

 

Chaves utilizadas :

 

Chave primária(composta) : tha_num_processo,tha_num_ano_processo,tha_num_anexo

 

Chave estrangeira - segue, abaixo, o comando que adiciona a chave estrangeira à tabela acima

 

Alter table tab_h_anexo add constraint fk_processo_h_anexo

Foreign Key (tha_num_processo,tha_ano_processo) references tab_processo

(tpr_num_processo,tpr_ano_processo) on delete cascade on update cascade;

 

Índices utilizados :

 

Índice para chave estrangeira - segue o comando que cria um índice para a chave estrangeira

acima mencionada(fk_processo_h_anexo)

 

Alter table tab_h_anexo add Index Idx_fk_tipo_anexo_h_anexo(tha_tipo_anexo);

 

Por quê a estrutura foi criada dessa forma ?

 

Para poder individualizar cada anexo(documento) que é juntado a um processo. Assim :

 

tha_num_processo tha_ano_processo tha_num_anexo

1 2005 1

1 2005 1

2 2006 1

2 2006 2

2 2006 3

 

 

Os dois primeiros campos são as chaves primárias de uma outra tabela com a qual a tabela tab_h_anexo está relacionada : a tabela tab_processo.

Desta forma, os dois primeiros campos da chave primária composta supracitada são, nesta tabela, tanto PARTE DA CHAVE PRIMÁRIA COMPOSTA, como também CHAVES ESTRANGEIRAS(uma vez que eles são chave primária da tabela tab_processo).

Bem, espero ter sido claro.

Agradeço imensamente a quem puder me ajudar.

Abraços a todos,

 

Max W. V. Carvalho

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.