Mysql

Páginas: 7 (1506 palabras) Publicado: 6 de octubre de 2012
Borrar registros de tablas relacionadas
MySQL no soporta subconsultas en versiones previas a la 4.1, o el uso de más de una tabla en la sentencia DELETE anteriormente a la versión 4.0. Si su versión de MySQL no soporta subconsultas, o sentenciasDELETE multi-tabla, puede utilizar las siguientes estrategias para borrar registros de dos tablas relacionadas:
1. Seleccione (SELECT) los registrosbasados en una condición WHEREen la tabla principal.
2. Borre (DELETE) los registros de la tabla principal basándose en la misma condición.
3. DELETE FROM tabla_relacionada WHERE columna_relacionada IN (registros_seleccionados).
Si la longitud total de la sentencia DELETE para tabla_relacionadaes más de 1MB (el valor por defecto de la variable de sistemamax_allowed_packet), debería partirla enpartes más pequeñas y ejecutar múltiples sentencias DELETE. Problablemente obtenga el borrado más rápido especificando entre 100 y 1000 valores decolumna_relacionada por sentencia si columna_relacionada está indexada. Si columna_relacionada no está indexada, la velocidad es independiente del número de argumentos en la clausula IN.

Seleccionando todos los datos
La manera más simple de la sentenciaSELECT es cuando se recuperan todos los datos de una tabla:
mysql> SELECT * FROM mascotas;
+--------+-------------+-----------+------+------------+---------------+
| nombre | propietario | especie | sexo | nacimiento | fallecimiento |
+--------+-------------+-----------+------+------------+---------------+
| Fluffy | Arnoldo | Gato | f | 1999-02-04 | NULL |
| Mau |Juan | Gato | m | 1998-03-17 | NULL |
| Buffy | Arnoldo | Perro | f | 1999-05-13 | NULL |
| FanFan | Benito | Perro | m | 2000-08-27 | NULL |
| Kaiser | Diana | Perro | m | 1998-08-31 | 1997-07-29 |
| Chispa | Omar | Ave | f | 1998-09-11 | NULL |
| Wicho | Tomás | Ave |NULL | 2000-02-09 | NULL |
| Skim | Benito | Serpiente | m | 2001-04-29 | NULL |
| Pelusa | Diana | Hamster | f | 2000-03-30 | NULL |
+--------+-------------+-----------+------+------------+---------------+
9 rows in set (0.00 sec)
Esta forma del SELECT es útil si deseamos ver los datos completos de la tabla, por ejemplo, para asegurarnos de queestán todos los registros después de la carga de un archivo.
Por ejemplo, en este caso que estamos tratando, al consultar los registros de la tabla, nos damos cuenta de que hay un error en el archivo de datos (mascotas.txt): parece que Kaiser ha nacido después de que ha fallecido!. Al revisar un poco el pedigree de Kaiser encontramos que la fecha correcta de nacimiento es el año 1989, no 1998.
Haypor lo menos un par de maneras de solucionar este problema:
Editar el archivo "mascotas.txt" para corregir el error, eliminar los datos de la tablamascotas con la sentencia DELETE, y cargar los datos nuevamente con el comando LOAD DATA:
mysql> DELETE FROM mascotas;
mysql> LOAD DATA LOCAL INFILE "mascotas.txt" INTO TABLE mascotas;
Sin embargo, si hacemos esto, debemos ingresar los datos dePelusa, la mascota de nuestra hermana Diana.
La segunda opción consiste en corregir sólo el registro erróneo con una sentenciaUPDATE:
mysql> UPDATE mascotas SET nacimiento="1989-08-31"
WHERE nombre="Kaiser";
Como se mostró anteriormente, es muy fácil recuperar los datos de una tabla completa. Pero típicamente no deseamos hacer esto, particularmente cuando las tablas son demasiado grandes. En vezde ello, estaremos más interesados en responder preguntas particulares, en cuyo caso debemos especificar algunas restricciones para la información que deseamos ver.

Seleccionar registros particulares
Por MySQL-Hispano.org.
Podemos seleccionar sólo registros particulares de una tabla. Por ejemplo, si deseamos verificar el cambio que hicimos a la fecha de nacimiento de Kaiser, seleccionamos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Mysql
  • Mysql
  • Mysql
  • Mysql
  • QUE ES MYSQL
  • Mysql
  • Mysql
  • Mysql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS