Una recente domanda su StackOverflow ha provocato una discussione sull'immutabilità delle chiavi primarie. Avevo pensato che fosse una specie di regola che le chiavi primarie dovessero essere immutabili. Se c'è la possibilità che un giorno una chiave primaria venga aggiornata, ho pensato che dovresti usare una chiave surrogata. Tuttavia non è nello standard SQL e alcune funzionalità di "aggiornamento in cascata" di RDBMS consentono di modificare una chiave primaria.
Quindi la mia domanda è: è ancora una cattiva pratica avere una chiave primaria che può cambiare? Quali sono gli eventuali svantaggi di avere una chiave primaria modificabile?