TransWikia.com

Cannot add foreign key constraint! porem sintaxe e pks estão corretas

Stack Overflow em Português Asked on November 10, 2021

Estou a tentar criar uma FK para uma tabela, nao percebo erro de sintaxe, porem o TOAD me devolve a mensagem que nao pode criar a FK.
As tabelas estão criadas no banco, e as PKs estao certas.

ALTER TABLE minsarh.perguntas ADD CONSTRAINT fk_perg_perg FOREIGN KEY (id_ds_pergunta) 
 REFERENCES minsarh.tb_ds_pergunta (id_ds_pergunta) ON UPDATE NO ACTION ON DELETE NO ACTION;

Looup Error – MySQK Database Error: Cannot add foreign key constraint

Nao consigo identificar o erro.

Alguem pode me dar uma idéia????
Obrigado!

One Answer

O erro está na criação das tabelas como colocou nos comentários:

CREATE TABLE minsarh.tb_ds_pergunta ( 
    id_ds_pergunta int(11) unsigned NOT NULL AUTO_INCREMENT ,
    ds_pergunta varchar(255) NOT NULL ,
    PRIMARY KEY (id_ds_pergunta) 
); 

CREATE TABLE perguntas ( 
    id_pergunta int(10) unsigned NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY (id_pergunta), 

Alter Table minsarh.perguntas add CONSTRAINT fk_perguntas_perg FOREIGN KEY (id_ds_pergunta) REFERENCES tb_ds_pergunta (id_ds_pergunta) ON DELETE NO ACTION ON UPDATE NO ACTION;

Não sei sei tu não colocou toda a criação mas falta fechar o CREATE TABLE antes de iniciar o ALTER TABLE

Além disso os tipos e tamanhos das PK e FK devem ser iguais na primeira tabela é definido como INT(11) e na outra INT(10)

Você também está tenando usar uma PK de uma tabela como FK da mesma tabela, isso nem faz sentido

Geralmente FK não são AUTO-INCREMENT

Answered by Costamilam on November 10, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP