snoke Postado Julho 14, 2007 Denunciar Share Postado Julho 14, 2007 estou a ter algumas dificuldades em criar esta base de dados:CREATE TABLE `mensagem` ( `msgid` int(11) NOT NULL auto_increment, `nome` varchar(45) NOT NULL, `texto` text NOT NULL, PRIMARY KEY (`msgid`), KEY `FK_mensagem_1` (`nome`) ) TYPE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; CREATE TABLE `sala` ( `id` int(10) unsigned NOT NULL auto_increment, `nome` varchar(45) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `nome` (`nome`) ) TYPE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; CREATE TABLE `utilizador` ( `nome` varchar(45) NOT NULL, `passe` varchar(45) NOT NULL, `ult_msg` int(11) NOT NULL, `id_sala` int(11) NOT NULL, PRIMARY KEY (`nome`), UNIQUE KEY `nome` (`nome`), INDEX i2 (id_sala) ) TYPE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; ALTER TABLE `mensagem` ADD CONSTRAINT `FK_mensagem_1` FOREIGN KEY (`nome`) REFERENCES `utilizador` (`nome`) ON DELETE CASCADE; ALTER TABLE `utilizador` ADD CONSTRAINT `FK_utilizador_1` FOREIGN KEY (`id_sala`) REFERENCES `sala` (`id`) ON UPDATE CASCADE;Dá-me o seguinte erro: Comando SQL: ALTER TABLE `utilizador` ADD CONSTRAINT `FK_utilizador_1` FOREIGN KEY ( `id_sala` ) REFERENCES `sala` ( `id` ) ON UPDATE CASCADE ;Mensagens do MySQL : #1005 - Can't create table '.\chat\#sql-c54_ced.frm' (errno: 150) Pelo que estive a ler é um erro em relação ao campo "id_sala" que tem que ser index, mas como já meti o mesmo como index não percebo porque continua a dar o erro... Grato pela sua atenção! Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Julho 14, 2007 Denunciar Share Postado Julho 14, 2007 Os campos devem ser do mesmo tipo. No seu código, um está como Int(10) e outro, como Int(11). Deixe os dois como Int(10) ou Int(11). ;)Abraços,Beraldo Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
snoke
estou a ter algumas dificuldades em criar esta base de dados:
Dá-me o seguinte erro:
Comando SQL:
ALTER TABLE `utilizador` ADD CONSTRAINT `FK_utilizador_1` FOREIGN KEY ( `id_sala` ) REFERENCES `sala` ( `id` ) ON UPDATE CASCADE ;
Mensagens do MySQL :
#1005 - Can't create table '.\chat\#sql-c54_ced.frm' (errno: 150)
Pelo que estive a ler é um erro em relação ao campo "id_sala" que tem que ser index, mas como já meti o mesmo como index não percebo porque continua a dar o erro...
Grato pela sua atenção!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados