Fórum Foreign Key - Um chave primária Varchar (20) e a outra ..... #58705
21/08/2007
0
estou com um problema de iniciante.
Tenho um campo de uma tabele que preciso que ela seja um chave estrangeira(Foreign Key) de outra tablela. o nome desse campo é COD_ORDENADO VarChar (20) PK. Na outra tabela que estou tentando colocar está assim: COD_ORDENADO_M Integer. Quando tento fazer a alteração pelo IBExpert da a seguinte mensagem:
This operation is not defined for system tables. unsuccessful metadata update. could not find UNIQUE INDEX with specified columns.
O código de alteração é:
alter table LANCAMENTO_PROJETO add constraint FK_LANCAMENTO_PROJETO_MATERIAL foreign key (COD_ORDENADO_M) references MATERIAL(COD_ORDENADO)
[color=red:39f7c76a6e]Como posso resolver?[/color:39f7c76a6e]
Aí vai minha estrutura da tabela 1.
CREATE GENERATOR SEQ_MATERIAL_ID; CREATE TABLE MATERIAL ( ID_COD INTEGER NOT NULL, COD_ORDENADO VARCHAR(20), DESCRICAO VARCHAR(70) COLLATE PT_BR, UN VARCHAR(2), PRECO_UNITARIO FLOAT, TIPO_CONTA VARCHAR(1) ); ALTER TABLE MATERIAL ADD CONSTRAINT PK_MATERIAL PRIMARY KEY (COD_ORDENADO, ID_COD);
Vai aí a estrutura da tabela 2:
CREATE GENERATOR SEQ_LANCAMENTO_PROJETO_ID; CREATE TABLE LANCAMENTO_PROJETO ( ID_LANCAMENTO_PROJETO INTEGER NOT NULL, ID_PROJETO INTEGER NOT NULL, COD_ORDENADO_M INTEGER, QUANTIDADE_M VARCHAR(20), TOTAL FLOAT ); ALTER TABLE LANCAMENTO_PROJETO ADD CONSTRAINT PK_LANCAMENTO_PROJETO PRIMARY KEY (ID_LANCAMENTO_PROJETO); ALTER TABLE LANCAMENTO_PROJETO ADD CONSTRAINT FK_LANCAMENTO_PROJETO_PROJETO FOREIGN KEY (ID_PROJETO) REFERENCES PROJETO (ID_PROJETO) USING INDEX FK_LANCAMENTO_PROJETO_1;
Jpauloss
Curtir tópico
+ 0Posts
22/08/2007
Pestana_
você precisa deixar os tipos dados dos campos iguais, para então utilizar o foreign key.
se eu estiver errado, por favor alguem me corrija!
Pestana.
Gostei + 0
22/08/2007
Gandalf.nho
Gostei + 0
22/08/2007
Jpauloss
Coloquei do mesmo tipo e fazendo referencia as duas chaves primárias da outra tabela só que ainda está dando erro.
This operation is not defined for system tables. Dynamic SQL Error. SQL error code = -607. Invalid command. FOREIGN KEY column count does not match PRIMARY KEY.
alter table LANCAMENTO_PROJETO add constraint FK_LANCAMENTO_PROJETO_MATERIAL foreign key (COD_ORDENADO_M) references MATERIAL(COD_ORDENADO,ID_COD)
Que faço?
Gostei + 0
22/08/2007
Jpauloss
CREATE GENERATOR SEQ_LANCAMENTO_PROJETO_ID; CREATE TABLE LANCAMENTO_PROJETO ( ID_LANCAMENTO_PROJETO INTEGER NOT NULL, ID_PROJETO INTEGER NOT NULL, COD_ORDENADO_M VARCHAR(20), QUANTIDADE_M VARCHAR(20), TOTAL FLOAT );
e da outra tabela:
CREATE GENERATOR SEQ_MATERIAL_ID; CREATE TABLE MATERIAL ( ID_COD INTEGER NOT NULL, COD_ORDENADO VARCHAR(20), DESCRICAO VARCHAR(70) COLLATE PT_BR, UN VARCHAR(2), PRECO_UNITARIO FLOAT, TIPO_CONTA VARCHAR(1) );
Gostei + 0
23/08/2007
Gandalf.nho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)