{Oracle} una consulta DELETE
angelique1
Mensajes publicados
81
Fecha de registro
Estado
Miembro
Última intervención
-
devMan Mensajes publicados 75 Estado Miembro -
devMan Mensajes publicados 75 Estado Miembro -
Hola
tengo una consulta que no funciona, no entiendo por qué:
yo estoy eliminando todos los corredores que forman parte del equipo Festina
DELETE
FROM COUREUR
WHERE CodeEquipe IN (
SELECT CodeEquipe
FROM EQUIPE
WHERE NomEquipe = 'Festina'
);
sabiendo que codeEquipe es una clave primaria en la tabla Equipe y es una clave foránea en la tabla coureur
en el error me dicen violación de restricción de integridad; hijos existentes
por favor es urgente ayúdame
Configuración: Windows Vista Safari 532.0
tengo una consulta que no funciona, no entiendo por qué:
yo estoy eliminando todos los corredores que forman parte del equipo Festina
DELETE
FROM COUREUR
WHERE CodeEquipe IN (
SELECT CodeEquipe
FROM EQUIPE
WHERE NomEquipe = 'Festina'
);
sabiendo que codeEquipe es una clave primaria en la tabla Equipe y es una clave foránea en la tabla coureur
en el error me dicen violación de restricción de integridad; hijos existentes
por favor es urgente ayúdame
Configuración: Windows Vista Safari 532.0
12 respuestas
Hola
La estructura de un delete con join no existe! la sintaxis que has utilizado es totalmente válida.
tu problema es que existen filas que dependen de ciertos corredores Festina. Si eliminas a esos corredores, las filas que dependen de ellos ya no dependerán de nada... y eso, no es bueno.
es similar a si quisieras eliminar al equipo Festina: primero eliminarías a los corredores que dependen de él.
entonces debes primero eliminar las filas que dependen de los corredores a eliminar... Supongo que están en tablas de las que no nos has hablado
una vez realizada esa eliminación, podrás eliminar a tus corredores Festina.
inténtalo entonces
La estructura de un delete con join no existe! la sintaxis que has utilizado es totalmente válida.
tu problema es que existen filas que dependen de ciertos corredores Festina. Si eliminas a esos corredores, las filas que dependen de ellos ya no dependerán de nada... y eso, no es bueno.
es similar a si quisieras eliminar al equipo Festina: primero eliminarías a los corredores que dependen de él.
entonces debes primero eliminar las filas que dependen de los corredores a eliminar... Supongo que están en tablas de las que no nos has hablado
una vez realizada esa eliminación, podrás eliminar a tus corredores Festina.
inténtalo entonces
select fils.constraint_name, fils.table_name, col.column_name from all_constraints pere, all_constraints fils, all_cons_columns col where pere.constraint_name = fils.r_constraint_name and fils.constraint_name = col.constraint_name and pere.table_name='COUREUR' and pere.constraint_type='P'eso debería listarte la(s) tabla(s) y columna(s) que referencian a tus corredores y que bloquean la eliminación.
hola
simplemente tienes líneas en una tabla X o Y que se refieren a alguno de los corredores que quieres eliminar.
simplemente tienes líneas en una tabla X o Y que se refieren a alguno de los corredores que quieres eliminar.
bain tengo una tabla EQUIPE(codeEquipe,nomEquipe,......) donde codeEquipe es una clave primaria
y la tabla COUREUR(numeroCoureur,...,codeEquipe)
así es la estructura de las tablas
por favor dame la estructura de un delete con join
y la tabla COUREUR(numeroCoureur,...,codeEquipe)
así es la estructura de las tablas
por favor dame la estructura de un delete con join
Hola,
para el primer problema es normal que aparezca violación de restricción de integridad
para el segundo problema solo debes aplicar la restricción de clave foránea
para el primer problema es normal que aparezca violación de restricción de integridad
para el segundo problema solo debes aplicar la restricción de clave foránea
hola
intenta con esta consulta
delete *
from courreur
where courreur.codequipe=equipe.codeequipe
and equipe.nomequipe='festina'
buena suerte
intenta con esta consulta
delete *
from courreur
where courreur.codequipe=equipe.codeequipe
and equipe.nomequipe='festina'
buena suerte
Varias soluciones:
O eliminas la restricción en las tablas donde tienes tu clave foránea...
O modificas tu restricción para que las filas de las tablas que tienen tu clave foránea también se eliminen...
https://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php
¡A manipular con precaución!!
@+
--
Por malentendido, ¡puede funcionar!!
O eliminas la restricción en las tablas donde tienes tu clave foránea...
O modificas tu restricción para que las filas de las tablas que tienen tu clave foránea también se eliminen...
https://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php
¡A manipular con precaución!!
@+
--
Por malentendido, ¡puede funcionar!!
Salud,
En situaciones similares en MySQL
usamos la eliminación en cascada....
ahí me parece que también debes definir delete/update en cascada en la clave foránea..
no estoy seguro !!!!
En situaciones similares en MySQL
usamos la eliminación en cascada....
ahí me parece que también debes definir delete/update en cascada en la clave foránea..
no estoy seguro !!!!
Seamos serios un poco.
¿Un usuario estándar tiene la posibilidad de activar o desactivar restricciones?
¿Tiene la posibilidad de modificar restricciones?
¿Por qué implementar restricciones si luego se van a eliminar?
--
- Mi Clio está averiada, ayúdame
- ¡Pues! ¿por qué no compraste un Peugeot?
¿Un usuario estándar tiene la posibilidad de activar o desactivar restricciones?
¿Tiene la posibilidad de modificar restricciones?
¿Por qué implementar restricciones si luego se van a eliminar?
--
- Mi Clio está averiada, ayúdame
- ¡Pues! ¿por qué no compraste un Peugeot?
dije pas qu"il va supprimer les contraintes ... c pas ça
je veux dire qu'il doit ajouter les propriétés ON DELETE CASCADE et ON UPDATE CASCADE a la clef étrangère ..
et quand il supprime un primary key il va supprimer automatiquement ses clef étrangère...
Effacement du 'père' => Effacement des 'fils' (en cascade)
s'il est les droit bien sur ....
je veux dire qu'il doit ajouter les propriétés ON DELETE CASCADE et ON UPDATE CASCADE a la clef étrangère ..
et quand il supprime un primary key il va supprimer automatiquement ses clef étrangère...
Effacement du 'père' => Effacement des 'fils' (en cascade)
s'il est les droit bien sur ....
Hola
Primero: no sabemos si Angelique1 tiene derecho a modificar las restricciones en las tablas utilizadas
Segundo: el cascade es un mal hábito: el día que eliminemos accidentalmente un cliente, se eliminan automáticamente sus presupuestos, sus pedidos, sus envíos, sus facturas y sus pagos... la buena jugada.
la solución aquí sigue siendo hacer limpieza en participantes y luego volver a ejecutar la consulta inicial.
--
Ia orana i te matahiti api
Primero: no sabemos si Angelique1 tiene derecho a modificar las restricciones en las tablas utilizadas
Segundo: el cascade es un mal hábito: el día que eliminemos accidentalmente un cliente, se eliminan automáticamente sus presupuestos, sus pedidos, sus envíos, sus facturas y sus pagos... la buena jugada.
la solución aquí sigue siendo hacer limpieza en participantes y luego volver a ejecutar la consulta inicial.
--
Ia orana i te matahiti api
Buenas noches. Cuando creé el usuario le di todos los privilegios
y en lo que respecta a la tabla participant, la clave primaria de la tabla corredor migra a participant
y cuál es la estructura de (on delete cascade). Cuando yo creé mis tablas declaré mis restricciones normalmente sin hacer el delete on cascade, así que por favor ¿cómo podría añadirlo?
y en lo que respecta a la tabla participant, la clave primaria de la tabla corredor migra a participant
y cuál es la estructura de (on delete cascade). Cuando yo creé mis tablas declaré mis restricciones normalmente sin hacer el delete on cascade, así que por favor ¿cómo podría añadirlo?
y si la base se niega a eliminar a los corredores Festina, es simplemente porque quedan de esos corredores que están presentes (o mejor dicho referenciados) en la asociación PARTICIPANT (a la que nunca le has contado).
Me permito devolverte para leer una vez más el capítulo "Integridad referencial". Una vez que lo asimiles, todo te parecerá mucho más claro.