{"id":9030,"date":"2022-01-19T11:55:03","date_gmt":"2022-01-19T16:55:03","guid":{"rendered":"https:\/\/itsoftware.com.co\/content\/?p=9030"},"modified":"2022-07-17T18:52:16","modified_gmt":"2022-07-17T23:52:16","slug":"actualizacion-de-registros-de-una-tabla-mysql","status":"publish","type":"post","link":"https:\/\/itsoftware.com.co\/content\/actualizacion-de-registros-de-una-tabla-mysql\/","title":{"rendered":"Actualizaci\u00f3n de registros de una tabla MySQL"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La actualizaci\u00f3n de registros de una tabla MySQL, permite la edici\u00f3n de los valores de una o m\u00e1s filas de dicha tabla.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"600\" height=\"167\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/actualizacion-de-registros-de-una-tabla-mysql.jpg\" alt=\"Actualizaci\u00f3n de registros de una tabla MySQL\" class=\"wp-image-9034\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/actualizacion-de-registros-de-una-tabla-mysql.jpg 600w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/actualizacion-de-registros-de-una-tabla-mysql-300x84.jpg 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>Actualizaci\u00f3n de registros de una tabla MySQL<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Una tabla se actualiza con el comando UPDATE, cuya sintaxis b\u00e1sica es:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">UPDATE &lt;nombre tabla&gt; SET campo1=valor1, campo2=valor2, ...,campo-n=valor-n WHERE &lt;condicion&gt;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Los pares <em>campo = valor<\/em>, indican los campos que se modifican de las filas que cumplen con la &lt;condicion&gt;, indicada luego de la cl\u00e1usula WHERE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es <strong>muy importante<\/strong> validar la &lt;condici\u00f3n&gt; de la edici\u00f3n, porque indica sobre el subconjunto de datos donde se realizar\u00e1 la modificaci\u00f3n de los datos. Un UPDATE sin condici\u00f3n, o con una condici\u00f3n incorrecta, puede implicar una edici\u00f3n en masa de muchos registros, que luego se puede volver muy compleja de recuperar. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo teniendo la tabla <em>empleados<\/em>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"382\" height=\"84\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados.jpg\" alt=\"Tabla empleados\" class=\"wp-image-9033\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados.jpg 382w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados-300x66.jpg 300w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><figcaption>Tabla empleados<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Si deseamos modificar la c\u00e9dula de \u00abMart\u00edn Carvajal\u00bb, por 9988, usamos el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">UPDATE empleados SET cedula='9988' WHERE cedula='9987';<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quedando la tabla de la siguiente forma:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"388\" height=\"82\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados-update-simple.jpg\" alt=\"Actualizaci\u00f3n simple de registro\" class=\"wp-image-9035\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados-update-simple.jpg 388w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-empleados-update-simple-300x63.jpg 300w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><figcaption>Actualizaci\u00f3n simple de registro<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Actualizaci\u00f3n de registros a partir de una consulta<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Por otro lado, un UPDATE puede recibir el valor de un campo a partir de una consulta, donde \u00e9sta debe devolver un valor \u00fanico, es decir, un solo campo, bajo una sola fila.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para mostrar un ejemplo, consideremos una segunda tabla llamada <em>salarios<\/em>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"101\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios.jpg\" alt=\"tabla salarios\" class=\"wp-image-9036\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios.jpg 526w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-300x58.jpg 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><figcaption>Tabla salarios<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En este caso deseamos cambiar el campo <em>nombre <\/em>de la tabla <em>salarios<\/em>, con el valor del campo <em>nombre <\/em>de la tabla <em>empleados<\/em>, todo a partir del n\u00famero de <em>c\u00e9dula<\/em>.  Para este fin usamos la siguiente SQL:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">UPDATE salarios S SET nombre=(SELECT nombre from empleados E where E.cedula=S.cedula)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quedando la tabla <em>salarios <\/em>con las siguientes modificaciones:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"100\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-select.jpg\" alt=\"Actualizaci\u00f3n de registros a partir de consulta\" class=\"wp-image-9037\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-select.jpg 528w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-select-300x57.jpg 300w\" sizes=\"(max-width: 528px) 100vw, 528px\" \/><figcaption>Actualizaci\u00f3n de registros a partir de consulta<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo, el valor que se le pone al campo <em>nombre <\/em>de la tabla <em>salarios<\/em>, proviene de una consulta que trae el <em>nombre <\/em>de la tabla <em>empleados<\/em>, donde la c\u00e9dula del empleado es igual a la <em>c\u00e9dula <\/em>en la tabla <em>salarios<\/em>. Esto es v\u00e1lido siempre y cuando la <em>c\u00e9dula <\/em>sea un valor \u00fanico en la tabla <em>empleados<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Actualizaci\u00f3n de registros usando las cl\u00e1usulas JOIN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una actualizaci\u00f3n tambi\u00e9n se puede realizar usando las cl\u00e1usulas JOIN, con el fin de modificar los registros que cumplan con las condiciones de campos coincidentes seg\u00fan sean INNER, LEFT o RIGHT JOIN. La diferencia de estas cl\u00e1usulas puedes consultarla en el art\u00edculo <a href=\"https:\/\/itsoftware.com.co\/content\/usos-y-diferencias-entre-inner-left-y-right-join\/\"><strong>Usos y diferencias de inner, left y right join<\/strong><\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si ahora tenemos la tabla <em>salarios <\/em>de la siguiente forma:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"103\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner1.jpg\" alt=\"Tabla salarios\" class=\"wp-image-9038\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner1.jpg 528w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner1-300x59.jpg 300w\" sizes=\"(max-width: 528px) 100vw, 528px\" \/><figcaption>Tabla salarios<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">y queremos ahora poner en el campo <em>nombre <\/em>de la tabla <em>salarios, <\/em>el <em>apellido<\/em> de la tabla <em>empleados<\/em>,  la SQL con la cl\u00e1usula JOIN ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">UPDATE salarios S INNER JOIN empleados E ON S.cedula=E.cedula SET S.nombre=E.apellido;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quedando ahora la tabla modificada de la siguiente forma:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"99\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner2.jpg\" alt=\"Actualizaci\u00f3n de registros usando Join\" class=\"wp-image-9039\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner2.jpg 525w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/update-tabla-salarios-update-inner2-300x57.jpg 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><figcaption>Actualizaci\u00f3n de registros usando Join<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En este caso, primero se determinan los registros de la tabla <em>salarios <\/em>y de la tabla <em>empleados<\/em> donde la c\u00e9dula sea la misma (INNER JOIN), a estos registros se les aplica la actualizaci\u00f3n del campo <em>nombre <\/em>de la tabla <em>salarios<\/em>, con el valor del campo <em>apellido <\/em>de la tabla <em>empleados<\/em>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A cada una de estas sentencias, se le puede aplicar la cl\u00e1usula WHERE, si se desea hacer este cambio en un subconjunto m\u00e1s peque\u00f1o de filas, y no en toda la tabla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"copiar-filas-misma-tabla\">Uso de Insert y Update para copiar filas de una tabla en ella misma<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En algunos casos requerimos copiar filas de una tabla en ella misma, cambiando algunos valores de las filas copiadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo usaremos una tabla temporal, con el fin de copiar ahi las filas que deseamos duplicar, para hacer las modificaciones respectivas en ella, con el fin de no generar conflicto con las restricciones de llaves primarias e \u00edndices \u00fanicos, para finalmente copiar estas filas modificadas en la misma tabla de origen. Estos son los pasos para realizar esta operaci\u00f3n, considerando nuestras tablas de ejemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1-  Identificamos el registro o los registros que deseamos copiar de la tabla, en este ejemplo de la tabla salarios, mediante la siguiente consulta:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM salarios;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que deseamos copiar los datos de la fila, donde  <em>id<\/em>=3:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"93\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-1.jpg\" alt=\"Fila a copiar en la misma tabla\" class=\"wp-image-9042\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-1.jpg 528w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-1-300x53.jpg 300w\" sizes=\"(max-width: 528px) 100vw, 528px\" \/><figcaption>Fila a copiar en la misma tabla<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">2- Ahora crearemos una tabla temporal  <em>tmptable_1 <\/em>, donde copiaremos los registros de la tabla <em>salarios<\/em>, donde el <em>id <\/em>sea 3:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM salarios WHERE id = 3;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Veremos que la tabla  <em>tmptable_1  <\/em>ya tiene el valor que requerimos:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SELECT * FROM tmptable_1;<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"517\" height=\"43\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-2.jpg\" alt=\"Valores copiados en la tabla temporal\" class=\"wp-image-9043\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-2.jpg 517w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-2-300x25.jpg 300w\" sizes=\"(max-width: 517px) 100vw, 517px\" \/><figcaption>Valores copiados en la tabla temporal<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">3- Necesitamos cambiar algunos valores de la fila copiada. Es importante poner el <em>id <\/em>en NULL, para no generar conflicto con la llave primaria de la tabla <em>salarios<\/em>. Y finalmente cambiamos los valores de los campos <em>salario<\/em>, <em>mes <\/em> y <em>anio<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">UPDATE tmptable_1 SET id = NULL, salario='8900', mes=11,anio=2021;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora el registro en la tabla temporal queda modificado as\u00ed:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"521\" height=\"44\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-3.jpg\" alt=\"Valores modificados en la tabla temporal\" class=\"wp-image-9040\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-3.jpg 521w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-3-300x25.jpg 300w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><figcaption>Valores modificados en la tabla temporal<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">4- En seguida tenemos que insertar los registros de la tabla temporal  <em>tmptable_1  <\/em>a la tabla <em>salarios<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">INSERT INTO salarios SELECT * FROM tmptable_1; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quedando ahora la tabla <em>salarios<\/em>, con una fila adicional, copiada a partir del registro con id=3:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"118\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-4.jpg\" alt=\"Valor copiado en la tabla salarios\" class=\"wp-image-9041\" srcset=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-4.jpg 526w, https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/clonar-filas-en-la-misma-tabla-4-300x67.jpg 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><figcaption>Valor copiado en la tabla salarios<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">5-  Finalmente eliminamos la tabla temporal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">DROP TEMPORARY TABLE IF EXISTS tmptable_1;<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">El uso de UPDATE para la edici\u00f3n de los valores de los registros de una tabla, es un aspecto que facilita enormemente la modificaci\u00f3n de grandes vol\u00famenes de informaci\u00f3n, bajo consideraciones controladas y condiciones que identifican los subconjuntos de registros donde se aplicar\u00e1n los cambios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este art\u00edculo hace parte del sistema de divulgaci\u00f3n de conocimiento de <strong><a href=\"https:\/\/itsoftware.com.co\/content\/desarrollo-de-software-bogota-colombia\/\">ITSoftware<\/a><\/strong>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Si te gust\u00f3, por favor no olvides compartirlo en las redes sociales. \ud83d\ude09<\/h5>\n","protected":false},"excerpt":{"rendered":"<p>La actualizaci\u00f3n de registros de una tabla MySQL, permite la edici\u00f3n de los valores de una o m\u00e1s filas de dicha tabla. Una tabla se actualiza con el comando UPDATE,[&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":9034,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[97],"tags":[1575,1577,1574,1576],"class_list":["post-9030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bases-de-datos","tag-actualizacion-de-tablas","tag-actualizacion-mysql","tag-update","tag-update-mysql"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2022\/01\/actualizacion-de-registros-de-una-tabla-mysql.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/9030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/comments?post=9030"}],"version-history":[{"count":0,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/9030\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media\/9034"}],"wp:attachment":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media?parent=9030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/categories?post=9030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/tags?post=9030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}