Henrique Neto Postado Maio 30, 2009 Denunciar Share Postado Maio 30, 2009 Eu tenho duas tabelas,servicos e clienteeu quero botar chave estrangeira em cliente com o id de servicos como é o codigo o script do mysql?create table wip_cliente ( cli_id int not null auto_increment, cli_nome varchar(50) not null, cli_cpf varchar(11) not null, cli_rg varchar(10) not null, cli_datanasc date not null, cli_end varchar(45) not null, cli_complemento varchar(20) null, cli_num float not null, cli_cep char(8) not null, cli_bairro varchar(45) not null, cli_cidade varchar(45) not null, cli_telefone varchar(12) not null, cli_email varchar(45) not null, cli_formapagamento varchar(45) not null, cli_cartao float null, cli_validade date null, cli_codigo int null, cli_banco varchar(40) null, cli_ag int null, cli_conta float null, PRIMARY KEY (cli_id) ) CONSTRAINT 'fk_se_id' FOREIGN KEY ('cli_id' ) REFERENCES 'withoutpaper'.'wip_servicos' ('se_id') ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;create table wip_servicos( se_id int not null auto_increment, se_nome varchar(50) not null, se_preco float not null, PRIMARY KEY (se_id) )Tentei assim e não consegui! Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcus Nunes Postado Maio 31, 2009 Denunciar Share Postado Maio 31, 2009 (editado) PRIMARY KEY (cli_id) )...FOREIGN KEY ('cli_id' )Acredito que o FOREIGN KEY ('cli_id' ) deveria estar na outra tabela, no caso wip_servicos. Editado Maio 31, 2009 por Marcus Nunes Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Neto Postado Maio 31, 2009 Autor Denunciar Share Postado Maio 31, 2009 ?se eu quero que a chave estrangeira esteja relacionada a cliente, não entendi pra q botar em servicos? Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Neto Postado Maio 31, 2009 Autor Denunciar Share Postado Maio 31, 2009 so da error de sintaxe tentei agora alterar a tabela com o seguinte codigo e não consigo tambémALTER TABLE wip_cliente ADD CONSTRAINT fk_servico FOREIGN KEY (servico_cliente) REFERENCES wip_servicos (se_id) ON DELETE RESTRICT ON UPDATE RESTRICTvi falar q tem q botar algo Engine:iDDOb algo assim ???poderiam me explicar desde já grato. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 1, 2009 Denunciar Share Postado Junho 1, 2009 Oi, 'Henrique Neto'Se você quer que o relacionamento entre clientes e serviços seja de 1 para muitos (1:N) Um cliente pode realizar muitos serviços. Então o código do cliente deve estar na tabela de serviços para que o relacionamento possa ser estabelecido.Então teremos a seguinte estrutura de cliente:create table wip_cliente ( cli_id int not null auto_increment, cli_nome varchar(50) not null, cli_cpf varchar(11) not null, cli_rg varchar(10) not null, cli_datanasc date not null, cli_end varchar(45) not null, cli_complemento varchar(20) null, cli_num float not null, cli_cep char(8) not null, cli_bairro varchar(45) not null, cli_cidade varchar(45) not null, cli_telefone varchar(12) not null, cli_email varchar(45) not null, cli_formapagamento varchar(45) not null, cli_cartao float null, cli_validade date null, cli_codigo int null, cli_banco varchar(40) null, cli_ag int null, cli_conta float null, PRIMARY KEY (cli_id) )ENGINE = InnoDB; e a tabela de serviços será:create table wip_servicos( se_id int not null auto_increment, cli_id int not null default 0, se_nome varchar(50) not null, se_preco float not null, PRIMARY KEY (se_id), CONSTRAINT fk_se_id FOREIGN KEY (cli_id) REFERENCES withoutpaper.wip_cliente(cli_id) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB; Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Neto Postado Junho 1, 2009 Autor Denunciar Share Postado Junho 1, 2009 e o contrario eu quero que a chave esteja de servicos em cliente, o cliente tem um servico,e não um servico tem um cliente.create table wip_cliente ( cli_id int not null auto_increment, cli_nome varchar(50) not null, cli_cpf varchar(11) not null, cli_rg varchar(10) not null, cli_datanasc date not null, cli_end varchar(45) not null, cli_complemento varchar(20) null, cli_num float not null, cli_cep char(8) not null, cli_bairro varchar(45) not null, cli_cidade varchar(45) not null, cli_telefone varchar(12) not null, cli_email varchar(45) not null, cli_formapagamento varchar(45) not null, cli_cartao float null, cli_validade date null, cli_codigo int null, cli_banco varchar(40) null, cli_ag int null, cli_conta float null, PRIMARY KEY (cli_id), CONSTRAINT fk_cli_id FOREIGN KEY (se_id) REFERENCES wip_servicos(se_id) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB create table wip_servicos( se_id int not null auto_increment, se_nome varchar(50) not null, se_preco float not null, PRIMARY KEY (se_id) )fiz a inversao do que voce me deu deu problema :Sq rezenha Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 1, 2009 Denunciar Share Postado Junho 1, 2009 E onde em wip_cliente você declarou se_id ?Deveria haver uma declaralçao se_id int not null default 0 na tabela wip_cliente.Se não tiver esta decleração não vai funcionar. Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Neto Postado Junho 1, 2009 Autor Denunciar Share Postado Junho 1, 2009 valeu jovem resolvido vi depois q tava faltando uma atribuicao grato.Denis Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Henrique Neto
Eu tenho duas tabelas,
servicos e cliente
eu quero botar chave estrangeira em cliente com o id de servicos como é o codigo o script do mysql?
create table wip_cliente (
cli_id int not null auto_increment,
cli_nome varchar(50) not null,
cli_cpf varchar(11) not null,
cli_rg varchar(10) not null,
cli_datanasc date not null,
cli_end varchar(45) not null,
cli_complemento varchar(20) null,
cli_num float not null,
cli_cep char(8) not null,
cli_bairro varchar(45) not null,
cli_cidade varchar(45) not null,
cli_telefone varchar(12) not null,
cli_email varchar(45) not null,
cli_formapagamento varchar(45) not null,
cli_cartao float null,
cli_validade date null,
cli_codigo int null,
cli_banco varchar(40) null,
cli_ag int null,
cli_conta float null,
PRIMARY KEY (cli_id) )
CONSTRAINT 'fk_se_id'
FOREIGN KEY ('cli_id' )
REFERENCES 'withoutpaper'.'wip_servicos' ('se_id')
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
create table wip_servicos(
se_id int not null auto_increment,
se_nome varchar(50) not null,
se_preco float not null,
PRIMARY KEY (se_id) )
Tentei assim e não consegui!
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados