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!
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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP