replace esegue un delete seguito da un insert.... penso si tratti del comando REPLACE

meglio se dai una attenta lettura a tutte le eccezioni e vincoli che hanno le foreign keys

http://dev.mysql.com/doc/refman/5.0/...nstraints.html