Ir para conteúdo
Fórum Script Brasil
  • 0

Chave Estrangeira - ERRO


alm_renato

Pergunta

Beleza pessoal? Estou usando o MySQL Front para tentar via código criar duas tabelas e uma chave estrangeira, mas está dando erro com a chave estrangeira:

create table clientes 
(
cli_id smallint unsigned not null auto_increment,
cli_nome varchar(60),
cli_idade integer, 
cli_sexo char(1),
cli_telefone numeric(8,4), 
cli_cidade smallint,
cli_estado varchar (2), 
cli_salario double(6,2),
primary key (cli_id) 

)engine = InnoDB default charset = latin1;


create table cidades
(
cid_id smallint unsigned not null auto_increment, 
cid_nome varchar (40), 
primary key (cid_id)
)engine = InnoDB default charset = latin1;


alter table clientes
add constraint fk_cli_cid
foreign key(cli_id) -----> já coloquei cli_cidade e deu erro tb
references cidades(cid_id) 
on delete restrict 
on update cascade 
on update cascade;

Editado por Denis Courcy
Melhorar entendimento do código
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi 'alm_renato'

Faça assim:

create database cli;
use cli;


create table cidades(
cid_id smallint unsigned not null auto_increment, 
cid_nome varchar (40), 
primary key (cid_id)
)engine = InnoDB default charset = latin1;

create table clientes (
cli_id smallint unsigned not null auto_increment,
cli_nome varchar(60),
cli_idade integer, 
cli_sexo char(1),
cli_telefone numeric(8,4), 
cli_cidade smallint UNSIGNED NOT NULL DEFAULT 0,
cli_estado varchar (2), 
cli_salario double(6,2),
primary key (cli_id),
constraint fk_cli_cid foreign key(cli_cidade) references cidades(cid_id) on delete restrict on update cascade 
)engine = InnoDB default charset = latin1;

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Denis,

Pelo pouco que eu conheço ACHO que o erro está aqui:

alter table clientes
add constraint fk_cli_cid
foreign key(cli_id) -----> já coloquei cli_cidade e deu erro tb
references cidades(cid_id) 
on delete restrict 
on update cascade 
on update cascade;
deveria ficar assim
alter table clientes
add constraint fk_cli_cid <- campo
foreign key(fk_cli_cid)  <------ nome do campo que você alterou na tabela
references cidades(cid_id) 
on delete restrict 
on update cascade 
on update cascade;

Mas como não tenho certeza é bom testar ;p

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...