Cuándo usar "ACTUALIZAR CASCADA"

Uso "ON DELETE CASCADE" con regularidad, pero nunca uso "ON UPDATE CASCADE", ya que no estoy seguro de en qué situación será útil.

Por el bien de la discusión, veamos algunos códigos.

CREATE TABLE parent (
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (id)
);

CREATE TABLE child (
    id INT NOT NULL AUTO_INCREMENT, parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id)
        REFERENCES parent(id)
        ON DELETE CASCADE
);

Para "ON DELETE CASCADE", si un padre con unid se borra, un registro en niño conparent_id = parent.id se eliminará automáticamente. Esto no debería ser un problema.

Esto significa que "ON UPDATE CASCADE" hará lo mismo cuandoid de los padres se actualiza?

Si (1) es verdadero, significa que no hay necesidad de usar "ON UPDATE CASCADE" siparent.id no es actualizable (o nunca se actualizará) como cuando esAUTO_INCREMENT o siempre dispuesto a serTIMESTAMP. ¿Está bien?

Si (2) no es cierto, ¿en qué otro tipo de situación debemos usar "ON UPDATE CASCADE"?

¿Qué pasa si (por alguna razón) actualizo elchild.parent_id Para ser algo que no existe, ¿se eliminará automáticamente?

Bueno, lo sé, algunas de las preguntas anteriores se pueden probar mediante programación para comprender, pero también quiero saber si algo de esto depende del proveedor de la base de datos o no.

Por favor, arrojar algo de luz.

Respuestas a la pregunta(6)

Su respuesta a la pregunta