Jump to content
Fórum Script Brasil
  • 0

Chave Estrangeira - ERRO


alm_renato

Question

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;

Edited by Denis Courcy
Melhorar entendimento do código
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...