1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Ajuda com Foreign keys...

Discussão em 'Web Development' iniciada por SnOke, 22 de Maio de 2007. (Respostas: 2; Visualizações: 599)

  1. Boas,

    Tou com o seguinte problema, necessito de ter uma tabela com 2 foreign keys que é a tabela mensagem, mas quando tento criar essa tabela dá me o seguinte erro: #1005 - Can't create table '.\chat\mensagem.frm' (errno: 150)

    Pelo que tive a ler o erro #1005 é um erro de syntax, mas o que é certo é que não encontro nenhum erro segue o codigo:

    Código:
    CREATE TABLE utilizadores (
       id INT NOT NULL auto_increment,
       id_sala INT NOT NULL,
       ultima_msg INT NOT NULL,
       nome varchar(45) NOT NULL,
       passe varchar(45) NOT NULL,
       PRIMARY KEY (id)) TYPE=INNODB;
    
    CREATE TABLE salas (
       id INT NOT NULL auto_increment,
       nome varchar(45) NOT NULL,
       utilizadores varchar(45),
       PRIMARY KEY(id)) TYPE=INNODB;
    
    CREATE TABLE mensagem (
       msgid INT NOT NULL AUTO_INCREMENT,
       id_sala INT NOT NULL,
       nome_utilizador varchar(45) NOT NULL,
       texto text,
       PRIMARY KEY(msgid),
       FOREIGN KEY (nome_utilizador) REFERENCES utilizadores(nome) ON UPDATE CASCADE ON DELETE RESTRICT,
       FOREIGN KEY (id_sala) REFERENCES salas(id) ON UPDATE CASCADE ON DELETE RESTRICT) TYPE=INNODB;

    Mensagens do MySQL :
    #1005 - Can't create table '.\chat\utilizadores.frm' (errno: 150)

    Obrigado pela vossa atenção!

    abraços
     
  2. mcog_blaster

    mcog_blaster Power Member

    Antes de criares a tabela mensagem, adiciona isto

    ou entao mudas esta linha:
    para:
    que é o que faz mais sentido.
    Tens de mudar na tabela mensagem o tipo do nome_utilizador para int(11)...os tipos entre as chaves tem de ser iguais.
     
    Última edição: 22 de Maio de 2007
  3. Perfeito!! Obrigado pela ajuda!! Estou te grato!

    Um abraço! :)
     

Partilhar esta Página