{"id":1658,"date":"2016-01-12T00:30:00","date_gmt":"2016-01-12T06:30:00","guid":{"rendered":"http:\/\/linuxitos.com\/main\/nombres-de-campos-de-tablas-a-minusculas-postgresql\/"},"modified":"2016-01-12T00:30:00","modified_gmt":"2016-01-12T06:30:00","slug":"nombres-de-campos-de-tablas-a-minusculas-postgresql","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/nombres-de-campos-de-tablas-a-minusculas-postgresql\/","title":{"rendered":"Nombres de campos de tablas a minusculas postgresql"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/1.bp.blogspot.com\/-kgYhWoNj4FI\/VpSNERXWfLI\/AAAAAAAABmw\/g3SjBPyXtJI\/s1600\/Captura%2Bde%2Bpantalla%2Bde%2B2016-01-11%2B23-19-13.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" height=\"306\" src=\"http:\/\/1.bp.blogspot.com\/-kgYhWoNj4FI\/VpSNERXWfLI\/AAAAAAAABmw\/g3SjBPyXtJI\/s640\/Captura%2Bde%2Bpantalla%2Bde%2B2016-01-11%2B23-19-13.png\" width=\"640\" \/><\/a><\/div>\n<div style=\"text-align: justify;\">Hace poco estaba trabajando con un software que exporta los nombres de los campos de las tablas en may\u00fascula. El problema de esto es que en postgresql, es necesario utilizar comillas para indicar un campo en may\u00fascula, ejemplo \u00abNOMBRE\u00bb, y si hubiera que utilizar ese cambo muchas veces es necesario cambiarlo a todo.<\/div>\n<div style=\"text-align: justify;\"><\/div>\n<div style=\"text-align: justify;\">Lo m\u00e1s recomendable es pasarlo a min\u00fasculas, bueno, el problema a parte de solo pasar los nombres de los campos a min\u00fasculas, es que ten\u00eda 43 tablas, y cada tabla ten\u00eda aproximandamente 10 cambos, es decir, que ten\u00eda que ejecutar m\u00e1s de 340 script&#8217;s sql para cambiar nombre de columnas de las tablas.<\/div>\n<div style=\"text-align: justify;\"><\/div>\n<div style=\"text-align: justify;\">Hasta cierto punto esto es tedioso, sobre todo porque, requiero actualizar la base de datos cada cierto tiempo.<\/div>\n<div style=\"text-align: justify;\"><\/div>\n<div style=\"text-align: justify;\">De tal modo que requer\u00eda una funci\u00f3n en postgresql para buscar los campos de todas las tablas de la base de datos que est\u00e9n en may\u00fascula y pasarlas a min\u00fascula, todo eso en una sola funci\u00f3n.<\/div>\n<div style=\"text-align: justify;\"><\/div>\n<div style=\"text-align: justify;\">Y aqu\u00ed est\u00e1 dicha funci\u00f3n:<\/div>\n<pre style=\"background: none no-repeat scroll 0% 0% rgb(0, 0, 0); border-radius: 3px; border: 1px solid rgb(0, 0, 0); font-family: &quot;Droid Sans Mono&quot;,Consolas,monospace; font-size: 13px; line-height: 20px; margin: 8px 15px; opacity: 0.85; padding: 9.5px; text-align: start; text-shadow: none; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;\"><span style=\"color: white;\">do language plpgsql $$<br \/>declare<br \/>    r record;<br \/>    sche varchar(12);<br \/>begin<br \/>    -- el esquema lo cambian a conveniencia<br \/>    sche = 'mgm';<br \/>    for r in<br \/>        select relname, attname<br \/>        from pg_attribute a<br \/>        inner join pg_class c on a.attrelid = c.oid<br \/>        inner join pg_namespace n on c.relnamespace = n.oid<br \/>        where<br \/>            n.nspname = 'mgm'<br \/>            and<br \/>            attname != lower(attname)<br \/>            and<br \/>            not attisdropped<br \/>    loop<br \/>        execute format(' alter table %1$s.%1$I rename column %2$I to %3$s ', sche,r.relname, r.attname, lower(r.attname));<br \/>    end loop;<br \/>end;<br \/>$$;<\/span><\/pre>\n<div style=\"text-align: justify;\"><\/div>\n<div style=\"text-align: justify;\">En esta funci\u00f3n lo \u00fanico que hay que cambiar es el esquema al que queremos cambiarle los nombres de los campos de las tablas.<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hace poco estaba trabajando con un software que exporta los nombres de los campos de las tablas en may\u00fascula. El problema de esto es que en postgresql, es necesario utilizar comillas para indicar un campo en may\u00fascula, ejemplo \u00abNOMBRE\u00bb, y si hubiera que utilizar ese cambo muchas veces es necesario cambiarlo a todo. Lo m\u00e1s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[839,840,841,122,842,838],"tags":[],"class_list":["post-1658","post","type-post","status-publish","format-standard","hentry","category-cambiar-nombres-de-campos","category-funcion","category-lowercase","category-postgresql","category-sql","category-uppercase"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/1658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=1658"}],"version-history":[{"count":0,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/1658\/revisions"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=1658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=1658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=1658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}