Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
NaDa

Relacionar tabelas

Recommended Posts

NaDa

Boas,

Estive a procura ja aqui no forum sobre o assunto mas nao vi muita coisa sobre o mesmo, apesar de ter visto uma duvida que explica um pouco la sobre o assunto, mas como eu quero saber o que errei e uma explicação mais detalhada sobre o assunto, decidi criar o topido :)

Tenho 2 tabelas, e basicamente o quer quero, na teoria é fácil, ja na pratica, 2  tabelas, e queria que o id_user de uma tabela tive-se o mesmo numero, que o id_user da outra tabela :S

Eu fiz isto no sql workbench:

CREATE  TABLE `informacao` (
  `id_user` INT NOT NULL ,
  `salario_user` FLOAT NOT NULL DEFAULT 250 ,
  `profissao_user` VARCHAR(45) NULL ,
  `morada_user` VARCHAR(45) NULL ,
  PRIMARY KEY (`id_user`) )
ENGINE = InnoDB
COMMENT = 'informaçao dos users';

CREATE  TABLE `registos` (
  `id_user` INT NOT NULL AUTO_INCREMENT ,
  `nome_user` MEDIUMTEXT NOT NULL ,
  `nick_user` VARCHAR(30) NOT NULL ,
  `email_user` VARCHAR(50) NOT NULL ,
  `senha_user` VARCHAR(32) NOT NULL ,
  `sexo_user` VARCHAR(8) NULL ,
  `pais_user` VARCHAR(45) NOT NULL ,
  `avatar_user` MEDIUMTEXT NULL ,
  `mod_user` VARCHAR(20) NOT NULL DEFAULT 'user' ,
  `data_user` DATETIME NOT NULL ,
  `informacao_id_user` INT NOT NULL ,
  PRIMARY KEY (`id_user`, `informacao_id_user`) ,
  INDEX `fk_registos_informacao` (`informacao_id_user` ASC) ,
  CONSTRAINT `fk_registos_informacao`
    FOREIGN KEY (`informacao_id_user` )
    REFERENCES `jogo`.`informacao` (`id_user` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'registo de todos os users';

Depois da erro ao inserir dados:

Cannot add or update a child row: a foreign key constraint fails (`jogo`.`registos`, CONSTRAINT `fk_registos_informacao` FOREIGN KEY (`informacao_id_user`) REFERENCES `informacao` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE)

O codigo que usei para inseria acho que ta bem :)

"INSERT INTO registos (nome_user,nick_user,email_user,senha_user,sexo_user,pais_user) 
                                                    VALUES
                                        ('$nome','$nick','$email','$senha','$sexo','$pais')"

Se alguém me quiser dar uma aulinha de FK agradecia :)

Desde ja muito obrigado :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.