Da quello che posso vedere nell'esempio, non hai inserito nulla nella tabella dei progetti in cui eseguire un aggiornamento o un'eliminazione in cascata.
Suggerirei come esempio migliore per dimostrare il comportamento che stai cercando di eseguire, dopo aver eseguito i passaggi precedenti:
insert into projects values (1,1);
select * from projects;
update location set id = 2 where id = 1;
select * from projects;
Quello che dovresti vedere è che inizialmente location_id nella riga dei progetti inseriti sarà uguale a 1, quindi dopo l'aggiornamento di location, location_id nei progetti dovrebbe cambiare in 2. Ciò dimostra che la modifica dell'id della posizione table è stato eseguito in cascata per aggiornare il campo location_id della riga nella tabella dei progetti.