Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beraldo

[Resolvido] Erro 1005 - 150

Recommended Posts

Saudações, pessoal! :D

 

Estou utilizando este código para criar a tabela de usuários:

 

Create Table usuarios(
id smallint(5) Unsigned Not Null auto_increment,
nome varchar(120) default '',
login varchar(30) Not Null,
senha char(32) Not Null,
id_nivel tinyint(2) Not Null,
Foreign Key (id_nivel) References niveis(id) On Delete Cascade On Update Cascade,
Primary Key (id),
Unique Key (login)
)type = innodb CHARACTER SET latin1 COLLATE latin1_general_ci;

A SQL da tabela níveis é esta:

Create Table niveis(
id tinyint(2) Unsigned Not Null auto_increment,
nome varchar(20) default '',
Primary Key (id),
Unique Key (nome)
)Type = innodb CHARACTER SET latin1 COLLATE latin1_general_ci;

 

A tabela níveis foi criada corretamente, mas está ocorrendo o seguinte erro ao criar a tabela usuários:

 

1005 - Can't create table '.\login\usuarios.frm' (errno: 150)

---

 

Encontrei isto no Manual do MySQL, mas sem muitos detalhes:

1005 (ER_CANT_CREATE_TABLE)

 

Cannot create table. If the error message refers to errno 150, table creation failed because a foreign key constraint was not correctly formed. If the error message refers to errno -1, table creation probably failed because the table includes a column name that matched the name of an internal InnoDB table.

Fonte: http://dev.mysql.com/doc/refman/5.1/en/inn...rror-codes.html

 

Será que estou cometendo algum erro na SQL da tabela usuários?

 

Valeu

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o "Unsigned" na definição do campo id_nivel, na tabela usuarios. Acredito que deu este erro pelo fato de os campos serem "diferentes".

 

Create Table usuarios(id smallint(5) Unsigned Not Null auto_increment,nome varchar(120) default '',login varchar(30) Not Null,senha char(32) Not Null,id_nivel tinyint(2) Unsigned Not Null,Foreign Key (id_nivel) References niveis(id) On Delete Cascade On Update Cascade,Primary Key (id),Unique Key (login))type = innodb CHARACTER SET latin1 COLLATE latin1_general_ci;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.