Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Borrar campo en diferentes tablas

Estas en el tema de Borrar campo en diferentes tablas en el foro de Bases de Datos General en Foros del Web. Hola tengo que borrar un campo que se cumple en 5 tablas de mi base de datos, para ello tengo la siguiente consulta SQL DELETE ...
  #1 (permalink)  
Antiguo 05/08/2005, 10:34
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Borrar campo en diferentes tablas

Hola tengo que borrar un campo que se cumple en 5 tablas de mi base de datos, para ello tengo la siguiente consulta SQL

DELETE * FROM
up_ispdo_caso,
up_ispdo_preguntas,
up_ispdo_respuestas,
up_ispdo_tema_respuestas,
up_ispdo_tipos_documento_respuestas
WHERE
up_ispdo_caso.id_caso='3' AND
up_ispdo_preguntas.id_caso='3' AND
up_ispdo_respuestas.id_caso='3' AND
up_ispdo_tema_respuestas.id_caso='3' AND
up_ispdo_tipos_documento_respuestas.id_caso='3'

Pero no se ejecuta bien y/o me da error, pueden ayudarme?

error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM
up_ispdo_caso,
up_ispdo_preguntas,
up_ispdo_respuestas,
up_ispdo_tema' at line 1

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 05/08/2005, 14:58
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
no se si esto te funcionara:
Código:
delete caso.*, preguntas.*, respuestas.*, tema.*, tipos.*
from up_ispdo_caso caso
inner join up_ispdo_preguntas preguntas
  on preguntas.id_caso = caso.id_caso
inner join up_ispdo_respuestas respuestas
  on respuestas.id_caso = caso.id_caso
inner join up_ispdo_tema_respuestas tema
  on tema.id_caso = caso.id_caso
inner join up_ispdo_tipos_documento_respuestas tipos
  on tipos.id_caso = caso.id_caso
where caso.id_caso = 3
pero yo dividiria mejor esta sentencias en cinco sentencias delete distintas. si lo que te preocupa son las transacciones eso es otra cosa.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #3 (permalink)  
Antiguo 05/08/2005, 15:50
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Si tu RDBMS soporta integridad relacional (foreign keys) entonces puedes usar cosas como el CASCADE DELETE que borra los registros dependientes
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 05/08/2005, 19:17
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Cita:
Iniciado por Mithrandir
Si tu RDBMS soporta integridad relacional (foreign keys) entonces puedes usar cosas como el CASCADE DELETE que borra los registros dependientes
Ok, estudie la posibilidad de hacer los 5 delete por separado pero queria una sola sentencia, las tablas son tipo MyISAM y no sé si soportan integridad relacional pero probaré o estudiaré eso, gracias
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #5 (permalink)  
Antiguo 08/08/2005, 15:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Iniciado por andinistas
Ok, estudie la posibilidad de hacer los 5 delete por separado pero queria una sola sentencia, las tablas son tipo MyISAM y no sé si soportan integridad relacional pero probaré o estudiaré eso, gracias
Entonces es MySQL. Hasta donde me quedé MySQL no soportaba integridad relacional (ni transacciones), ignoro si ahora con la version 5 (o quiza antes) se soporte. Es parte de las limitaciones de MySQL.

Si te interesa considera cambiar de manejador por algo como PostgreSQL o Thunderbird que también son libres y soportan la característica. Así como las transacciones, que es la otra forma de hacerlo en 5 instrucciones de manera segura.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:27.