Estoy intentando eliminar todas las filas en dos tablas dependientes basadas en una tercera ID de tablas.[MySQL]: ELIMINAR filas de dos tablas dependientes
Estructura de tabla:
Transaction
-Transaction_ID (primary)
-Timestamp
Purchase
-Item_ID
-Transaction_ID
-Purchase_ID (primary)
Item
-Item_ID (primary)
-Client_ID
quisiera eliminar todas las filas de la transacción/compra que coinciden con el client_id en el punto. Suena bastante simple ... Incluso puede envolver mi mente alrededor de ese novato ...
DELETE dbName.t FROM
dbName.Transaction t
JOIN
dbName.Purchase p
ON
p.Transaction_ID = t.Transaction_ID
JOIN
dbName.Item i
ON
p.Item_ID = i.Item_ID
WHERE
Client_ID = 1
Nop ...
me sale este error foreign key constraint fails...
- Estoy seguro que muchos de ustedes no está sorprendido.
¿El problema es que Compra usa t.Transaction_ID? - (por lo tanto, esta clave externa fallaría)
O es probable que existan otros datos dependientes de T.Transaction_ID en esta tabla (no he encontrado ninguno).
EDIT: COMPLETE ERROR
Cannot delete or update a parent row: a foreign key constraint fails
(`ItemTracker_dbo/Purchase`, CONSTRAINT `FK_Purchase_Transaction`
FOREIGN KEY (`Transaction_ID`) REFERENCES `Transaction` (`Transaction_ID`)
ON DELETE NO ACTION ON UPDATE CASCADE)
para mí parece lo opuesto: la transacción depende de la compra (como no puedo eliminar por client_id sin ella) –
@Derek Adair: ya que @AlbertEin fue el primero en responder la pregunta correctamente, y mi publicación necesitaba una revisión general. antes de que fuera útil, considere aceptar su respuesta. – Tomalak
Sin mirar detenidamente, tiene un Transaction_ID dentro de su tabla de compras. Si eliminó la transacción primero, la tabla de compras contendría temporalmente una Transaction_ID no válida que no existía. – MindStalker