{"id":561,"date":"2012-03-12T02:00:43","date_gmt":"2012-03-12T07:00:43","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/?p=561"},"modified":"2012-03-12T01:25:42","modified_gmt":"2012-03-12T06:25:42","slug":"mysql-necesita-mejorar-sus-mensajes-de-error","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/","title":{"rendered":"MySQL necesita mejorar sus mensajes de error"},"content":{"rendered":"<p>Acabo de modificar una base de datos, no debi\u00f3 demorar las dos horas que demor\u00e9 en realizar la tarea si no fuera por que MySQL no ha mejorado aun sus mensajes de error.<\/p>\n<p>La tarea fue agregar una nueva clave for\u00e1nea a una tabla existente, veamos como reproducir lo que me ha pasado:<\/p>\n<pre lang=\"sql\">-- Crear las tablas foo y bar\r\ncreate table foo (\r\n\tid integer not null primary key,\r\n\tbar_id int not null\r\n);\r\ncreate table bar (\r\n\tid integer not null primary key\r\n);\r\n-- Intentar crear una clave for\u00e1nea\r\nalter table foo\r\n\tadd foreign key(bar_id) references bar(ANY_FIELD) ;<\/pre>\n<p>Al ejecutar la ultima sentencia MySQL devuelve un error gen\u00e9rico que puede significar muchas cosas:<\/p>\n<p><code>Error Code: 1005. Can't create table 'temp.#sql-4bd7_11' (errno: 150)<\/code><\/p>\n<p>Todo hubiera sido mas f\u00e1cil si me hubiera dado cuenta que escrib\u00ed mal el campo de la tabla de deferencia <code>bar(ANY_FIELD)<\/code> (algunas veces pasa), si el mensaje de horror hubiera dicho: <code>\"field bar.ANY_FIELD don't exists\"<\/code> no estar\u00eda despierto hasta las 2am buscando una soluci\u00f3n,<\/p>\n<p>Estoy usando\u00a0MySQL\u00a0 5.5.21 community edition.<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-561\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-561\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-561\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Acabo de modificar una base de datos, no debi\u00f3 demorar las dos horas que demor\u00e9 en realizar la tarea si no fuera por que MySQL no ha mejorado aun sus mensajes de error. La tarea fue agregar una nueva clave &hellip; <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-561\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-561\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-561\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/mysql-necesita-mejorar-sus-mensajes-de-error\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[7],"tags":[43,12],"jetpack_featured_media_url":"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/logo-mysql-170x115-e1302270861102.png","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-93","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/561"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=561"}],"version-history":[{"count":5,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/561\/revisions"}],"predecessor-version":[{"id":564,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/561\/revisions\/564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media\/249"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}