{"id":66,"date":"2010-07-31T17:31:32","date_gmt":"2010-07-31T20:31:32","guid":{"rendered":"http:\/\/www.l9web.com.br\/blog\/?p=66"},"modified":"2020-01-16T21:28:55","modified_gmt":"2020-01-17T00:28:55","slug":"mysql-error-1005-cant-create-table-errno-150","status":"publish","type":"post","link":"https:\/\/www.l9web.com.br\/blog\/?p=66","title":{"rendered":"MySql Error 1005: Can\u2019t create table (errno: 150)"},"content":{"rendered":"<p>Vira e meche entre uma modelagem e outra eu me deparo com o seguinte erro \u201c<em>Error 1005: Can\u2019t create table (errno: 150)<\/em>\u201d enquanto estou trabalhando com uma\u00a0<em>Foreign Key<\/em>.<\/p>\n<p>Isso quer dizer que tem algo errado (l\u00f3gico) do qual esteja impedindo a cria\u00e7\u00e3o de sua nova\u00a0<em>Foreign Key<\/em>, segue abaixo os erros mais comuns:<\/p>\n<ul>\n<li>Os dois campos relacionados da Foreign Key n\u00e3o tem o mesmo tipo ou tamanho. Por exemplo, se um campo \u00e9 INT(10) o campo da chave precisa ser INT(10) tamb\u00e9m, se for colocado INT(11) ou TINYINY j\u00e1 n\u00e3o serve. Voc\u00ea deve verificar esses dados usando a query \u201cSHOW CREATE TABLE tblname;\u201d. Tamb\u00e9m confirme se ambos os campos s\u00e3o \u2018signed\u2019 ou \u2018unsigned\u2019. Conclus\u00e3o, os campos devem ser EXATAMENTE o mesmo!<\/li>\n<li>O campo do qual voc\u00ea deseja se referenciar em outra tabela n\u00e3o tem um \u00edndice (index) ou n\u00e3o \u00e9 uma chave prim\u00e1ria (primary key). Se um dos campos que voc\u00ea deseja criar a rela\u00e7\u00e3o n\u00e3o for uma \u201cprimary key\u201d, voc\u00ea deve criar um \u00edndice para ela.<\/li>\n<li>O nome da Foreign Key j\u00e1 existe em alguma chave. Confira se o nome de sua Foreign Key \u00e9 \u00fanica no seu banco de dados. Simplesmente adicione alguns caracteres aleat\u00f3rios no fim do nome de sua key para testar essa condi\u00e7\u00e3o.<\/li>\n<li>Uma ou ambas as tabelas s\u00e3o MyISAM. Para utilizar Foreign Key ambas as tabelas devem usar InnoDB. Normalmente quando ambas as tabelas s\u00e3o MyISAM o MySQL n\u00e3o apresenta nenhuma mensagem de erro, simplesmente n\u00e3o cria a chave.<\/li>\n<li>Voc\u00ea pode ter especificado \u201cCASCADE ON DELETE SET NULL\u201d, enquanto o campo \u00e9 \u201cNOT NULL\u201d, esse \u00e9 o erro mais comum.<\/li>\n<li>Se o seu script est\u00e1 funcionando perfeitamente em um\u00a0<em>server<\/em>, mas n\u00e3o em outro, verifique o collate ou charset, eles podem dar problemas caso sejam diferentes.<\/li>\n<li>Voc\u00ea pode ter um valor default (ex. default=0) na sua coluna Foreign Key.<\/li>\n<li>O nome de sua Foreign Key excede o limite de no m\u00e1ximo 64 caracteres.<\/li>\n<\/ul>\n<p>Bem.. eu acredito que a maioria dos erros sejam causados por esses motivos acima, caso voc\u00ea tenha passado por esse problema e a causa tenha sido diferente, colabore.<\/p>\n<p>Boa Sorte!<\/p>\n\n\n<p>Texto retirado do site http:\/\/diariodecodigos.info<\/p>\n\n\n\n<p>Todos os cr\u00e9ditos para http:\/\/diariodecodigos.info<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vira e meche entre uma modelagem e outra eu me deparo com o seguinte erro \u201cError 1005: Can\u2019t create table (errno: 150)\u201d enquanto estou trabalhando com uma\u00a0Foreign Key. Isso quer dizer que tem algo errado (l\u00f3gico) do qual esteja impedindo&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[47,77,138,140,141],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-sql","tag-cant-create-table-errno-150","tag-errno-150","tag-mysql","tag-mysql-error-1005","tag-mysql-error-1005-cant-create-table-errno-150"],"_links":{"self":[{"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/66"}],"collection":[{"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":2,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":326,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions\/326"}],"wp:attachment":[{"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.l9web.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}